lkml.org 
[lkml]   [2012]   [Jan]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[067/129] svcrpc: destroy server sockets all at once
    3.2-stable review patch.  If anyone has any objections, please let me know.

    ------------------
    Content-Length: 1963
    Lines: 75

    From: "J. Bruce Fields" <bfields@redhat.com>

    commit 2fefb8a09e7ed251ae8996e0c69066e74c5aa560 upstream.

    There's no reason I can see that we need to call sv_shutdown between
    closing the two lists of sockets.

    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    include/linux/sunrpc/svcsock.h | 2 +-
    net/sunrpc/svc.c | 7 +------
    net/sunrpc/svc_xprt.c | 11 ++++++++++-
    3 files changed, 12 insertions(+), 8 deletions(-)

    --- a/include/linux/sunrpc/svcsock.h
    +++ b/include/linux/sunrpc/svcsock.h
    @@ -34,7 +34,7 @@ struct svc_sock {
    /*
    * Function prototypes.
    */
    -void svc_close_all(struct list_head *);
    +void svc_close_all(struct svc_serv *);
    int svc_recv(struct svc_rqst *, long);
    int svc_send(struct svc_rqst *);
    void svc_drop(struct svc_rqst *);
    --- a/net/sunrpc/svc.c
    +++ b/net/sunrpc/svc.c
    @@ -531,16 +531,11 @@ svc_destroy(struct svc_serv *serv)

    del_timer_sync(&serv->sv_temptimer);

    - svc_close_all(&serv->sv_tempsocks);
    + svc_close_all(serv);

    if (serv->sv_shutdown)
    serv->sv_shutdown(serv);

    - svc_close_all(&serv->sv_permsocks);
    -
    - BUG_ON(!list_empty(&serv->sv_permsocks));
    - BUG_ON(!list_empty(&serv->sv_tempsocks));
    -
    cache_clean_deferred(serv);

    if (svc_serv_is_pooled(serv))
    --- a/net/sunrpc/svc_xprt.c
    +++ b/net/sunrpc/svc_xprt.c
    @@ -928,7 +928,7 @@ void svc_close_xprt(struct svc_xprt *xpr
    }
    EXPORT_SYMBOL_GPL(svc_close_xprt);

    -void svc_close_all(struct list_head *xprt_list)
    +static void svc_close_list(struct list_head *xprt_list)
    {
    struct svc_xprt *xprt;
    struct svc_xprt *tmp;
    @@ -946,6 +946,15 @@ void svc_close_all(struct list_head *xpr
    }
    }

    +void svc_close_all(struct svc_serv *serv)
    +{
    + svc_close_list(&serv->sv_tempsocks);
    + svc_close_list(&serv->sv_permsocks);
    + BUG_ON(!list_empty(&serv->sv_permsocks));
    + BUG_ON(!list_empty(&serv->sv_tempsocks));
    +
    +}
    +
    /*
    * Handle defer and revisit of requests
    */



    \
     
     \ /
      Last update: 2012-01-24 03:57    [W:0.023 / U:33.836 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site