summaryrefslogtreecommitdiff
path: root/fs/nfsd/state.h
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2024-10-31 09:40:06 -0400
committerChuck Lever <chuck.lever@oracle.com>2024-11-18 20:23:10 -0500
commitb44ffa4c4f57ffe8a0967963538689fed169f1c8 (patch)
tree8a38775cc5106e61c5c81f8468d336f7518abcdd /fs/nfsd/state.h
parent5c41f321470a5400641d3a271014ddd9b9868373 (diff)
downloadlwn-b44ffa4c4f57ffe8a0967963538689fed169f1c8.tar.gz
lwn-b44ffa4c4f57ffe8a0967963538689fed169f1c8.zip
NFSD: Block DESTROY_CLIENTID only when there are ongoing async COPY operations
Currently __destroy_client() consults the nfs4_client's async_copies list to determine whether there are ongoing async COPY operations. However, NFSD now keeps copy state in that list even when the async copy has completed, to enable OFFLOAD_STATUS to find the COPY results for a while after the COPY has completed. DESTROY_CLIENTID should not be blocked if the client's async_copies list contains state for only completed copy operations. Reviewed-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Diffstat (limited to 'fs/nfsd/state.h')
-rw-r--r--fs/nfsd/state.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/nfsd/state.h b/fs/nfsd/state.h
index 2f735492cf6c..4dd7ed7ae052 100644
--- a/fs/nfsd/state.h
+++ b/fs/nfsd/state.h
@@ -738,6 +738,7 @@ extern void nfsd4_init_cb(struct nfsd4_callback *cb, struct nfs4_client *clp,
extern bool nfsd4_run_cb(struct nfsd4_callback *cb);
extern void nfsd4_shutdown_callback(struct nfs4_client *);
extern void nfsd4_shutdown_copy(struct nfs4_client *clp);
+bool nfsd4_has_active_async_copies(struct nfs4_client *clp);
extern struct nfs4_client_reclaim *nfs4_client_to_reclaim(struct xdr_netobj name,
struct xdr_netobj princhash, struct nfsd_net *nn);
extern bool nfs4_has_reclaimed_state(struct xdr_netobj name, struct nfsd_net *nn);