nfs: nfs4xdr: simplify decode_exchange_id by reusing decode_opaque_inline
authorBenny Halevy <bhalevy@panasas.com>
Fri, 14 Aug 2009 14:20:10 +0000 (17:20 +0300)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Fri, 14 Aug 2009 18:02:20 +0000 (14:02 -0400)
Signed-off-by: Benny Halevy <bhalevy@panasas.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/nfs4xdr.c

index f69aafc..3f49da0 100644 (file)
@@ -4144,6 +4144,7 @@ static int decode_exchange_id(struct xdr_stream *xdr,
 {
        __be32 *p;
        uint32_t dummy;
+       char *dummy_str;
        int status;
        struct nfs_client *clp = res->client;
 
@@ -4166,19 +4167,19 @@ static int decode_exchange_id(struct xdr_stream *xdr,
        READ_BUF(8);
 
        /* Throw away Major id */
-       READ_BUF(4);
-       dummy = be32_to_cpup(p++);
-       READ_BUF(dummy);
+       status = decode_opaque_inline(xdr, &dummy, &dummy_str);
+       if (unlikely(status))
+               return status;
 
        /* Throw away server_scope */
-       READ_BUF(4);
-       dummy = be32_to_cpup(p++);
-       READ_BUF(dummy);
+       status = decode_opaque_inline(xdr, &dummy, &dummy_str);
+       if (unlikely(status))
+               return status;
 
        /* Throw away Implementation id array */
-       READ_BUF(4);
-       dummy = be32_to_cpup(p++);
-       READ_BUF(dummy);
+       status = decode_opaque_inline(xdr, &dummy, &dummy_str);
+       if (unlikely(status))
+               return status;
 
        return 0;
 }