• NeilBrown's avatar
    SUNRPC: discard sv_refcnt, and svc_get/svc_put · 1e3577a4
    NeilBrown authored
    sv_refcnt is no longer useful.
    lockd and nfs-cb only ever have the svc active when there are a non-zero
    number of threads, so sv_refcnt mirrors sv_nrthreads.
    
    nfsd also keeps the svc active between when a socket is added and when
    the first thread is started, but we don't really need a refcount for
    that.  We can simply not destroy the svc while there are any permanent
    sockets attached.
    
    So remove sv_refcnt and the get/put functions.
    Instead of a final call to svc_put(), call svc_destroy() instead.
    This is changed to also store NULL in the passed-in pointer to make it
    easier to avoid use-after-free situations.
    Signed-off-by: default avatarNeilBrown <neilb@suse.de>
    Reviewed-by: default avatarJeff Layton <jlayton@kernel.org>
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    1e3577a4
svc.c 42.2 KB