• NeilBrown's avatar
    SUNRPC/NFSD: clean up get/put functions. · 8c62d127
    NeilBrown authored
    svc_destroy() is poorly named - it doesn't necessarily destroy the svc,
    it might just reduce the ref count.
    nfsd_destroy() is poorly named for the same reason.
    
    This patch:
     - removes the refcount functionality from svc_destroy(), moving it to
       a new svc_put().  Almost all previous callers of svc_destroy() now
       call svc_put().
     - renames nfsd_destroy() to nfsd_put() and improves the code, using
       the new svc_destroy() rather than svc_put()
     - removes a few comments that explain the important for balanced
       get/put calls.  This should be obvious.
    
    The only non-trivial part of this is that svc_destroy() would call
    svc_sock_update() on a non-final decrement.  It can no longer do that,
    and svc_put() isn't really a good place of it.  This call is now made
    from svc_exit_thread() which seems like a good place.  This makes the
    call *before* sv_nrthreads is decremented rather than after.  This
    is not particularly important as the call just sets a flag which
    causes sv_nrthreads set be checked later.  A subsequent patch will
    improve the ordering.
    Signed-off-by: default avatarNeilBrown <neilb@suse.de>
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    8c62d127
svc.c 20.3 KB