aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBryan Schumaker <bjschuma@netapp.com>2011-04-27 15:28:44 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2011-04-27 16:17:29 -0400
commit613e901e1ee0e1096663b649eee8e5d6697919f3 (patch)
tree1a7c6c79585da11445de9c3b3c6c701d5c6c0195
parent28331a46d88459788c8fca72dbb0415cd7f514c9 (diff)
NFS: Return meaningful status from decode_secinfo()
When compiling, I was getting this warning: fs/nfs/nfs4xdr.c: In function ‘decode_secinfo’: fs/nfs/nfs4xdr.c:4839:6: warning: variable ‘status’ set but not used [-Wunused-but-set-variable] We were unconditionally returning 0 as long as there wasn't an error coming out of xdr_inline_decode(). We probably want to check the error status coming out of decode_op_hdr() and decode_secinfo_gss(), rather than assuming that everything is OK all the time. Signed-off-by: Bryan Schumaker <bjschuma@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
-rw-r--r--fs/nfs/nfs4xdr.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c
index 7310d2ec5de8..c3ccd2c46834 100644
--- a/fs/nfs/nfs4xdr.c
+++ b/fs/nfs/nfs4xdr.c
@@ -4836,6 +4836,8 @@ static int decode_secinfo(struct xdr_stream *xdr, struct nfs4_secinfo_res *res)
4836 int i, num_flavors; 4836 int i, num_flavors;
4837 4837
4838 status = decode_op_hdr(xdr, OP_SECINFO); 4838 status = decode_op_hdr(xdr, OP_SECINFO);
4839 if (status)
4840 goto out;
4839 p = xdr_inline_decode(xdr, 4); 4841 p = xdr_inline_decode(xdr, 4);
4840 if (unlikely(!p)) 4842 if (unlikely(!p))
4841 goto out_overflow; 4843 goto out_overflow;
@@ -4854,14 +4856,15 @@ static int decode_secinfo(struct xdr_stream *xdr, struct nfs4_secinfo_res *res)
4854 sec_flavor->flavor = be32_to_cpup(p); 4856 sec_flavor->flavor = be32_to_cpup(p);
4855 4857
4856 if (sec_flavor->flavor == RPC_AUTH_GSS) { 4858 if (sec_flavor->flavor == RPC_AUTH_GSS) {
4857 if (decode_secinfo_gss(xdr, sec_flavor)) 4859 status = decode_secinfo_gss(xdr, sec_flavor);
4858 break; 4860 if (status)
4861 goto out;
4859 } 4862 }
4860 res->flavors->num_flavors++; 4863 res->flavors->num_flavors++;
4861 } 4864 }
4862 4865
4863 return 0; 4866out:
4864 4867 return status;
4865out_overflow: 4868out_overflow:
4866 print_overflow_msg(__func__, xdr); 4869 print_overflow_msg(__func__, xdr);
4867 return -EIO; 4870 return -EIO;