aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfsd/nfs4state.c
diff options
context:
space:
mode:
authorRicardo Labiaga <Ricardo.Labiaga@netapp.com>2009-09-10 05:26:38 -0400
committerJ. Bruce Fields <bfields@citi.umich.edu>2009-09-15 20:49:56 -0400
commit2a1d1b593803d7c18a369bf148f3b48c5a3260fc (patch)
tree40cd8e5498ad680eec740923d512c0bf5fe114b3 /fs/nfsd/nfs4state.c
parent199ff35e1c8724871e157c2e48556c2794946e82 (diff)
nfsd41: Backchannel: Setup sequence information
Follows the model used by the NFS client. Setup the RPC prepare and done function pointers so that we can populate the sequence information if minorversion == 1. rpc_run_task() is then invoked directly just like existing NFS client operations do. nfsd4_cb_prepare() determines if the sequence information needs to be setup. If the slot is in use, it adds itself to the wait queue. nfsd4_cb_done() wakes anyone sleeping on the callback channel wait queue after our RPC reply has been received. It also sets the task message result pointer to NULL to clearly indicate we're done using it. Signed-off-by: Ricardo Labiaga <Ricardo.Labiaga@netapp.com> [define and initialize cl_cb_seq_nr here] [pulled out unused defintion of nfsd4_cb_done] Signed-off-by: Benny Halevy <bhalevy@panasas.com> Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Diffstat (limited to 'fs/nfsd/nfs4state.c')
-rw-r--r--fs/nfsd/nfs4state.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index f4cebd9016bc..76b7bcbb3f20 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -1331,6 +1331,7 @@ nfsd4_create_session(struct svc_rqst *rqstp,
1331 unconf->cl_cb_conn.cb_minorversion = 1331 unconf->cl_cb_conn.cb_minorversion =
1332 cstate->minorversion; 1332 cstate->minorversion;
1333 unconf->cl_cb_conn.cb_prog = cr_ses->callback_prog; 1333 unconf->cl_cb_conn.cb_prog = cr_ses->callback_prog;
1334 unconf->cl_cb_seq_nr = 1;
1334 nfsd4_probe_callback(unconf); 1335 nfsd4_probe_callback(unconf);
1335 } 1336 }
1336 conf = unconf; 1337 conf = unconf;