diff options
author | Jeff Layton <jlayton@kernel.org> | 2024-01-03 08:36:52 -0500 |
---|---|---|
committer | Chuck Lever <chuck.lever@oracle.com> | 2024-01-04 22:52:27 -0500 |
commit | 64e6304169f1e1f078e7f0798033f80a7fb0ea46 (patch) | |
tree | 80e43d184be307d43014ef9dcd54338d524cf762 /fs/nfsd/nfsd.h | |
parent | bd018b98ba84ca0c80abac1ef23ce726a809e58c (diff) | |
download | linux-64e6304169f1e1f078e7f0798033f80a7fb0ea46.tar.gz linux-64e6304169f1e1f078e7f0798033f80a7fb0ea46.tar.bz2 linux-64e6304169f1e1f078e7f0798033f80a7fb0ea46.zip |
nfsd: drop the nfsd_put helper
It's not safe to call nfsd_put once nfsd_last_thread has been called, as
that function will zero out the nn->nfsd_serv pointer.
Drop the nfsd_put helper altogether and open-code the svc_put in its
callers instead. That allows us to not be reliant on the value of that
pointer when handling an error.
Fixes: 2a501f55cd64 ("nfsd: call nfsd_last_thread() before final nfsd_put()")
Reported-by: Zhi Li <yieli@redhat.com>
Cc: NeilBrown <neilb@suse.de>
Signed-off-by: Jeffrey Layton <jlayton@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Diffstat (limited to 'fs/nfsd/nfsd.h')
-rw-r--r-- | fs/nfsd/nfsd.h | 7 |
1 files changed, 0 insertions, 7 deletions
diff --git a/fs/nfsd/nfsd.h b/fs/nfsd/nfsd.h index 3286ffacbc56..9ed0e08d16c2 100644 --- a/fs/nfsd/nfsd.h +++ b/fs/nfsd/nfsd.h @@ -113,13 +113,6 @@ int nfsd_pool_stats_open(struct inode *, struct file *); int nfsd_pool_stats_release(struct inode *, struct file *); void nfsd_shutdown_threads(struct net *net); -static inline void nfsd_put(struct net *net) -{ - struct nfsd_net *nn = net_generic(net, nfsd_net_id); - - svc_put(nn->nfsd_serv); -} - bool i_am_nfsd(void); struct nfsdfs_client { |