nfsd: Simplify code around svc_exit_thread() call in nfsd()
authorNeilBrown <neilb@suse.de>
Mon, 31 Jul 2023 06:48:31 +0000 (16:48 +1000)
committerChuck Lever <chuck.lever@oracle.com>
Tue, 29 Aug 2023 21:45:22 +0000 (17:45 -0400)
commit18e4cf915543257eae2925671934937163f5639b
tree0376505110627ef7ef6a211480d2b45af39d615d
parent3903902401451b1cd9d797a8c79769eb26ac7fe5
nfsd: Simplify code around svc_exit_thread() call in nfsd()

Previously a thread could exit asynchronously (due to a signal) so some
care was needed to hold nfsd_mutex over the last svc_put() call.  Now a
thread can only exit when svc_set_num_threads() is called, and this is
always called under nfsd_mutex.  So no care is needed.

Not only is the mutex held when a thread exits now, but the svc refcount
is elevated, so the svc_put() in svc_exit_thread() will never be a final
put, so the mutex isn't even needed at this point in the code.

Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/nfssvc.c
include/linux/sunrpc/svc.h