nfs41: store minorversion in cb_compound_hdr_arg
authorBenny Halevy <bhalevy@panasas.com>
Wed, 1 Apr 2009 13:23:19 +0000 (09:23 -0400)
committerBenny Halevy <bhalevy@panasas.com>
Wed, 17 Jun 2009 21:11:35 +0000 (14:11 -0700)
Signed-off-by: Benny Halevy <bhalevy@panasas.com>
fs/nfs/callback.h
fs/nfs/callback_xdr.c

index 88d2e11..51b15c2 100644 (file)
@@ -26,6 +26,7 @@ enum nfs4_callback_opnum {
 struct cb_compound_hdr_arg {
        unsigned int taglen;
        const char *tag;
+       unsigned int minorversion;
        unsigned int callback_ident;
        unsigned nops;
 };
index dd0ef34..91f6f74 100644 (file)
@@ -132,7 +132,6 @@ static __be32 decode_stateid(struct xdr_stream *xdr, nfs4_stateid *stateid)
 static __be32 decode_compound_hdr_arg(struct xdr_stream *xdr, struct cb_compound_hdr_arg *hdr)
 {
        __be32 *p;
-       unsigned int minor_version;
        __be32 status;
 
        status = decode_string(xdr, &hdr->taglen, &hdr->tag);
@@ -147,15 +146,18 @@ static __be32 decode_compound_hdr_arg(struct xdr_stream *xdr, struct cb_compound
        p = read_buf(xdr, 12);
        if (unlikely(p == NULL))
                return htonl(NFS4ERR_RESOURCE);
-       minor_version = ntohl(*p++);
+       hdr->minorversion = ntohl(*p++);
        /* Check minor version is zero. */
-       if (minor_version != 0) {
-               printk(KERN_WARNING "%s: NFSv4 server callback with illegal minor version %u!\n",
-                               __func__, minor_version);
+       if (hdr->minorversion != 0) {
+               printk(KERN_WARNING "%s: NFSv4 server callback with "
+                       "illegal minor version %u!\n",
+                       __func__, hdr->minorversion);
                return htonl(NFS4ERR_MINOR_VERS_MISMATCH);
        }
        hdr->callback_ident = ntohl(*p++);
        hdr->nops = ntohl(*p);
+       dprintk("%s: minorversion %d nops %d\n", __func__,
+               hdr->minorversion, hdr->nops);
        return 0;
 }