summaryrefslogtreecommitdiffstats
path: root/fs/nfsd/state.h
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2024-01-26 18:45:23 +0100
committerChuck Lever <chuck.lever@oracle.com>2024-03-01 15:12:12 +0100
commitfe0e9580e2d4d136d40d03bcdb19a0a2b03a11d9 (patch)
tree5fec000217f46351b692a89a98e64472d8324702 /fs/nfsd/state.h
parentNFSD: Reset cb_seq_status after NFS4ERR_DELAY (diff)
downloadlinux-fe0e9580e2d4d136d40d03bcdb19a0a2b03a11d9.tar.xz
linux-fe0e9580e2d4d136d40d03bcdb19a0a2b03a11d9.zip
NFSD: Convert the callback workqueue to use delayed_work
Normally, NFSv4 callback operations are supposed to be sent to the client as soon as they are queued up. In a moment, I will introduce a recovery path where the server has to wait for the client to reconnect. We don't want a hard busy wait here -- the callback should be requeued to try again in several milliseconds. For now, convert nfsd4_callback from struct work_struct to struct delayed_work, and queue with a zero delay argument. This should avoid behavior changes for current operation. Reviewed-by: Jeff Layton <jlayton@kernel.org> Reviewed-by: Benjamin Coddington <bcodding@redhat.com> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Diffstat (limited to 'fs/nfsd/state.h')
-rw-r--r--fs/nfsd/state.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/nfsd/state.h b/fs/nfsd/state.h
index 41bdc913fa71..87c4372ba36a 100644
--- a/fs/nfsd/state.h
+++ b/fs/nfsd/state.h
@@ -68,7 +68,7 @@ struct nfsd4_callback {
struct nfs4_client *cb_clp;
struct rpc_message cb_msg;
const struct nfsd4_callback_ops *cb_ops;
- struct work_struct cb_work;
+ struct delayed_work cb_work;
int cb_seq_status;
int cb_status;
bool cb_need_restart;