diff options
author | Andy Adamson <andros@netapp.com> | 2009-06-15 21:20:53 -0400 |
---|---|---|
committer | J. Bruce Fields <bfields@citi.umich.edu> | 2009-06-18 21:33:57 -0400 |
commit | ab52ae6db035fa425f90146327ab7d2c5d3e5654 (patch) | |
tree | 449acdb98ca035bd57c45b4bd8e89ac04f8ecff7 | |
parent | ef52bff8409bba78b042f1bcf33a0f49debc9774 (diff) |
nfsd41: Backchannel: minorversion support for the back channel
Prepare to share backchannel code with NFSv4.1.
Signed-off-by: Andy Adamson <andros@netapp.com>
Signed-off-by: Benny Halevy <bhalevy@panasas.com>
Signed-off-by: Ricardo Labiaga <Ricardo.Labiaga@netapp.com>
[nfsd41: use nfsd4_cb_sequence for callback minorversion]
Signed-off-by: Benny Halevy <bhalevy@panasas.com>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
-rw-r--r-- | fs/nfsd/nfs4callback.c | 3 | ||||
-rw-r--r-- | fs/nfsd/nfs4state.c | 1 | ||||
-rw-r--r-- | include/linux/nfsd/state.h | 3 |
3 files changed, 5 insertions, 2 deletions
diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c index 353eb4a0b847..3fd23f7aceca 100644 --- a/fs/nfsd/nfs4callback.c +++ b/fs/nfsd/nfs4callback.c | |||
@@ -141,6 +141,7 @@ struct nfs4_cb_compound_hdr { | |||
141 | u32 ident; | 141 | u32 ident; |
142 | u32 nops; | 142 | u32 nops; |
143 | __be32 *nops_p; | 143 | __be32 *nops_p; |
144 | u32 minorversion; | ||
144 | u32 taglen; | 145 | u32 taglen; |
145 | char *tag; | 146 | char *tag; |
146 | }; | 147 | }; |
@@ -209,7 +210,7 @@ encode_cb_compound_hdr(struct xdr_stream *xdr, struct nfs4_cb_compound_hdr *hdr) | |||
209 | 210 | ||
210 | RESERVE_SPACE(16); | 211 | RESERVE_SPACE(16); |
211 | WRITE32(0); /* tag length is always 0 */ | 212 | WRITE32(0); /* tag length is always 0 */ |
212 | WRITE32(NFS4_MINOR_VERSION); | 213 | WRITE32(hdr->minorversion); |
213 | WRITE32(hdr->ident); | 214 | WRITE32(hdr->ident); |
214 | hdr->nops_p = p; | 215 | hdr->nops_p = p; |
215 | WRITE32(hdr->nops); | 216 | WRITE32(hdr->nops); |
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index ef6944b19f06..980a216a48c8 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c | |||
@@ -984,6 +984,7 @@ gen_callback(struct nfs4_client *clp, struct nfsd4_setclientid *se) | |||
984 | if ( !(parse_ipv4(se->se_callback_addr_len, se->se_callback_addr_val, | 984 | if ( !(parse_ipv4(se->se_callback_addr_len, se->se_callback_addr_val, |
985 | &cb->cb_addr, &cb->cb_port))) | 985 | &cb->cb_addr, &cb->cb_port))) |
986 | goto out_err; | 986 | goto out_err; |
987 | cb->cb_minorversion = 0; | ||
987 | cb->cb_prog = se->se_callback_prog; | 988 | cb->cb_prog = se->se_callback_prog; |
988 | cb->cb_ident = se->se_callback_ident; | 989 | cb->cb_ident = se->se_callback_ident; |
989 | return; | 990 | return; |
diff --git a/include/linux/nfsd/state.h b/include/linux/nfsd/state.h index 105cc100de05..f5a95fd34312 100644 --- a/include/linux/nfsd/state.h +++ b/include/linux/nfsd/state.h | |||
@@ -85,7 +85,8 @@ struct nfs4_cb_conn { | |||
85 | u32 cb_addr; | 85 | u32 cb_addr; |
86 | unsigned short cb_port; | 86 | unsigned short cb_port; |
87 | u32 cb_prog; | 87 | u32 cb_prog; |
88 | u32 cb_ident; | 88 | u32 cb_minorversion; |
89 | u32 cb_ident; /* minorversion 0 only */ | ||
89 | /* RPC client info */ | 90 | /* RPC client info */ |
90 | atomic_t cb_set; /* successful CB_NULL call */ | 91 | atomic_t cb_set; /* successful CB_NULL call */ |
91 | struct rpc_clnt * cb_client; | 92 | struct rpc_clnt * cb_client; |