summaryrefslogtreecommitdiffstats
path: root/fs/nfsd/nfs4callback.c
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2015-04-30 11:49:25 +0200
committerJ. Bruce Fields <bfields@redhat.com>2015-05-04 12:02:42 -0400
commit4bd9e9b77fc6787c45b8bb439f6511aa3478606c (patch)
tree466a0765e28b543e2a55e7e51d712bfc9e52b82c /fs/nfsd/nfs4callback.c
parentcba5f62b1830c1919b47544789bc993e6e617dc6 (diff)
downloadlinux-0-day-4bd9e9b77fc6787c45b8bb439f6511aa3478606c.tar.gz
linux-0-day-4bd9e9b77fc6787c45b8bb439f6511aa3478606c.tar.xz
nfsd: skip CB_NULL probes for 4.1 or later
With sessions in v4.1 or later we don't need to manually probe the backchannel connection, so we can declare it up instantly after setting up the RPC client. Note that we really should split nfsd4_run_cb_work in the long run, this is just the least intrusive fix for now. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd/nfs4callback.c')
-rw-r--r--fs/nfsd/nfs4callback.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c
index 4c993aaf1e6e5..5694cfb7a47b7 100644
--- a/fs/nfsd/nfs4callback.c
+++ b/fs/nfsd/nfs4callback.c
@@ -1066,6 +1066,15 @@ nfsd4_run_cb_work(struct work_struct *work)
cb->cb_ops->release(cb);
return;
}
+
+ /*
+ * Don't send probe messages for 4.1 or later.
+ */
+ if (!cb->cb_ops && clp->cl_minorversion) {
+ clp->cl_cb_state = NFSD4_CB_UP;
+ return;
+ }
+
cb->cb_msg.rpc_cred = clp->cl_cb_cred;
rpc_call_async(clnt, &cb->cb_msg, RPC_TASK_SOFT | RPC_TASK_SOFTCONN,
cb->cb_ops ? &nfsd4_cb_ops : &nfsd4_cb_probe_ops, cb);