aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2010-10-23 15:43:10 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2010-10-23 15:43:10 -0400
commit3201f3dd7370f2d29dfb689ae16f8f5d4066cc33 (patch)
tree345fecf8fe25d069af5a7484028f23b5efcdf58b
parent7ad07353003d6ff69fe0b987813bb77b4d5ac23d (diff)
downloadmrst-s0i3-test-3201f3dd7370f2d29dfb689ae16f8f5d4066cc33.tar.gz
mrst-s0i3-test-3201f3dd7370f2d29dfb689ae16f8f5d4066cc33.tar.xz
mrst-s0i3-test-3201f3dd7370f2d29dfb689ae16f8f5d4066cc33.zip
NFSv4: Fix a regression in decode_getfattr
We don't want to have the mounted_on_fileid overwrite the true fileid. We only return the former if the server didn't supply the true fileid. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
-rw-r--r--fs/nfs/nfs4xdr.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c
index a6b00e84bd1..707975eebb5 100644
--- a/fs/nfs/nfs4xdr.c
+++ b/fs/nfs/nfs4xdr.c
@@ -3912,7 +3912,7 @@ static int decode_getfattr_attrs(struct xdr_stream *xdr, uint32_t *bitmap,
status = decode_attr_mounted_on_fileid(xdr, bitmap, &fileid);
if (status < 0)
goto xdr_error;
- if (status != 0) {
+ if (status != 0 && !(fattr->valid & status)) {
fattr->fileid = fileid;
fattr->valid |= status;
}