diff options
author | Ricardo Labiaga <Ricardo.Labiaga@netapp.com> | 2009-09-10 05:26:38 -0400 |
---|---|---|
committer | J. Bruce Fields <bfields@citi.umich.edu> | 2009-09-15 20:49:56 -0400 |
commit | 2a1d1b593803d7c18a369bf148f3b48c5a3260fc (patch) | |
tree | 40cd8e5498ad680eec740923d512c0bf5fe114b3 /include | |
parent | 199ff35e1c8724871e157c2e48556c2794946e82 (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 'include')
-rw-r--r-- | include/linux/nfsd/state.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/nfsd/state.h b/include/linux/nfsd/state.h index 9cc40a137c34..b38d11324189 100644 --- a/include/linux/nfsd/state.h +++ b/include/linux/nfsd/state.h | |||
@@ -221,6 +221,7 @@ struct nfs4_client { | |||
221 | /* for nfs41 callbacks */ | 221 | /* for nfs41 callbacks */ |
222 | /* We currently support a single back channel with a single slot */ | 222 | /* We currently support a single back channel with a single slot */ |
223 | unsigned long cl_cb_slot_busy; | 223 | unsigned long cl_cb_slot_busy; |
224 | u32 cl_cb_seq_nr; | ||
224 | struct svc_xprt *cl_cb_xprt; /* 4.1 callback transport */ | 225 | struct svc_xprt *cl_cb_xprt; /* 4.1 callback transport */ |
225 | struct rpc_wait_queue cl_cb_waitq; /* backchannel callers may */ | 226 | struct rpc_wait_queue cl_cb_waitq; /* backchannel callers may */ |
226 | /* wait here for slots */ | 227 | /* wait here for slots */ |