aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRicardo Labiaga <Ricardo.Labiaga@netapp.com>2009-09-10 05:26:12 -0400
committerJ. Bruce Fields <bfields@citi.umich.edu>2009-09-15 20:49:55 -0400
commit132f97715c098393fb8de3c26b07b9fdbd2334f1 (patch)
tree293a4cfc826e8597aeafcb64e8452a57fea25f08
parent38524ab38f2752beee262a97403d871665838172 (diff)
nfsd41: Backchannel: Add sequence arguments to callback RPC arguments
Follow the model we use in the client. Make the sequence arguments part of the regular RPC arguments. None of the callbacks that are soon to be implemented expect results that need to be passed back to the caller, so we don't define a separate RPC results structure. For session validation, the cb_sequence decoding will use a pointer to the sequence arguments that are part of the RPC argument. Signed-off-by: Ricardo Labiaga <Ricardo.Labiaga@netapp.com> [define struct nfsd4_cb_sequence here] Signed-off-by: Benny Halevy <bhalevy@panasas.com> Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
-rw-r--r--fs/nfsd/nfs4callback.c5
-rw-r--r--include/linux/nfsd/state.h6
2 files changed, 11 insertions, 0 deletions
diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c
index db4188ce9b00..f31175717c1a 100644
--- a/fs/nfsd/nfs4callback.c
+++ b/fs/nfsd/nfs4callback.c
@@ -92,6 +92,11 @@ enum nfs_cb_opnum4 {
92 cb_sequence_dec_sz + \ 92 cb_sequence_dec_sz + \
93 op_dec_sz) 93 op_dec_sz)
94 94
95struct nfs4_rpc_args {
96 void *args_op;
97 struct nfsd4_cb_sequence args_seq;
98};
99
95/* 100/*
96* Generic encode routines from fs/nfs/nfs4xdr.c 101* Generic encode routines from fs/nfs/nfs4xdr.c
97*/ 102*/
diff --git a/include/linux/nfsd/state.h b/include/linux/nfsd/state.h
index c916032570c4..0e5b5aecde03 100644
--- a/include/linux/nfsd/state.h
+++ b/include/linux/nfsd/state.h
@@ -60,6 +60,12 @@ typedef struct {
60#define si_stateownerid si_opaque.so_stateownerid 60#define si_stateownerid si_opaque.so_stateownerid
61#define si_fileid si_opaque.so_fileid 61#define si_fileid si_opaque.so_fileid
62 62
63struct nfsd4_cb_sequence {
64 /* args/res */
65 u32 cbs_minorversion;
66 struct nfs4_client *cbs_clp;
67};
68
63struct nfs4_delegation { 69struct nfs4_delegation {
64 struct list_head dl_perfile; 70 struct list_head dl_perfile;
65 struct list_head dl_perclnt; 71 struct list_head dl_perclnt;