NFSv4.2: Fix up a decoding error in layoutstats
authorTrond Myklebust <trond.myklebust@primarydata.com>
Sat, 27 Jun 2015 15:30:57 +0000 (11:30 -0400)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Sat, 27 Jun 2015 15:30:57 +0000 (11:30 -0400)
According to the spec, the server is only returning the status,
which we decode in the op header.

Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
fs/nfs/nfs42xdr.c

index 9aae0205ef11d965e12e07dd1a550c62f6e7c729..a6bd27da6286f9fee14f0b087eddcc1ec437cdde 100644 (file)
@@ -241,23 +241,7 @@ out_overflow:
 static int decode_layoutstats(struct xdr_stream *xdr,
                              struct nfs42_layoutstat_res *res)
 {
-       int status;
-       __be32 *p;
-
-       status = decode_op_hdr(xdr, OP_LAYOUTSTATS);
-       if (status)
-               return status;
-
-       p = xdr_inline_decode(xdr, 4);
-       if (unlikely(!p))
-               goto out_overflow;
-
-       res->rpc_status = be32_to_cpup(p++);
-       return 0;
-
-out_overflow:
-       print_overflow_msg(__func__, xdr);
-       return -EIO;
+       return decode_op_hdr(xdr, OP_LAYOUTSTATS);
 }
 
 /*