aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs
diff options
context:
space:
mode:
authorBenny Halevy <bhalevy@panasas.com>2009-04-01 09:23:20 -0400
committerBenny Halevy <bhalevy@panasas.com>2009-06-17 17:11:35 -0400
commit48a9e2d2289ed4b5053b3986d99709e9b07a0923 (patch)
treedb397b9d26c69eefadef9e53c27364624743cef4 /fs/nfs
parentb8f2ef84b079ceb22b42d6d353609db7eb8efa93 (diff)
nfs41: decode minorversion 1 cb_compound header
decode cb_compound header conforming to http://tools.ietf.org/html/draft-ietf-nfsv4-minorversion1-26 Get rid of cb_compound_hdr_arg.callback_ident callback_ident is not used anywhere so we shouldn't waste any memory to store it. Signed-off-by: Benny Halevy <bhalevy@panasas.com> [nfs41: no need to break read_buf in decode_compound_hdr_arg] See http://linux-nfs.org/pipermail/pnfs/2009-June/007844.html Signed-off-by: Benny Halevy <bhalevy@panasas.com>
Diffstat (limited to 'fs/nfs')
-rw-r--r--fs/nfs/callback.h1
-rw-r--r--fs/nfs/callback_xdr.c7
2 files changed, 4 insertions, 4 deletions
diff --git a/fs/nfs/callback.h b/fs/nfs/callback.h
index 51b15c2d3a56..a8ffa9d6ea2f 100644
--- a/fs/nfs/callback.h
+++ b/fs/nfs/callback.h
@@ -27,7 +27,6 @@ struct cb_compound_hdr_arg {
27 unsigned int taglen; 27 unsigned int taglen;
28 const char *tag; 28 const char *tag;
29 unsigned int minorversion; 29 unsigned int minorversion;
30 unsigned int callback_ident;
31 unsigned nops; 30 unsigned nops;
32}; 31};
33 32
diff --git a/fs/nfs/callback_xdr.c b/fs/nfs/callback_xdr.c
index 91f6f74ffea7..f6cc79b1d1f3 100644
--- a/fs/nfs/callback_xdr.c
+++ b/fs/nfs/callback_xdr.c
@@ -147,14 +147,15 @@ static __be32 decode_compound_hdr_arg(struct xdr_stream *xdr, struct cb_compound
147 if (unlikely(p == NULL)) 147 if (unlikely(p == NULL))
148 return htonl(NFS4ERR_RESOURCE); 148 return htonl(NFS4ERR_RESOURCE);
149 hdr->minorversion = ntohl(*p++); 149 hdr->minorversion = ntohl(*p++);
150 /* Check minor version is zero. */ 150 /* Check minor version is zero or one. */
151 if (hdr->minorversion != 0) { 151 if (hdr->minorversion <= 1) {
152 p++; /* skip callback_ident */
153 } else {
152 printk(KERN_WARNING "%s: NFSv4 server callback with " 154 printk(KERN_WARNING "%s: NFSv4 server callback with "
153 "illegal minor version %u!\n", 155 "illegal minor version %u!\n",
154 __func__, hdr->minorversion); 156 __func__, hdr->minorversion);
155 return htonl(NFS4ERR_MINOR_VERS_MISMATCH); 157 return htonl(NFS4ERR_MINOR_VERS_MISMATCH);
156 } 158 }
157 hdr->callback_ident = ntohl(*p++);
158 hdr->nops = ntohl(*p); 159 hdr->nops = ntohl(*p);
159 dprintk("%s: minorversion %d nops %d\n", __func__, 160 dprintk("%s: minorversion %d nops %d\n", __func__,
160 hdr->minorversion, hdr->nops); 161 hdr->minorversion, hdr->nops);