• Jeff Layton's avatar
    nfsd: fix error handling in __write_ports_addxprt · 0cd14a06
    Jeff Layton authored
    __write_ports_addxprt calls nfsd_create_serv. That increases the
    refcount of nfsd_serv (which is tracked in sv_nrthreads). The service
    only decrements the thread count on error, not on success like
    __write_ports_addfd does, so using this interface leaves the nfsd
    thread count high.
    
    Fix this by having this function call svc_destroy() on error to release
    the reference (and possibly to tear down the service) and simply
    decrement the refcount without tearing down the service on success.
    
    This makes the sv_threads handling work basically the same in both
    __write_ports_addxprt and __write_ports_addfd.
    Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
    Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
    0cd14a06
nfsctl.c 37.5 KB