diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2010-10-23 15:43:10 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2010-10-23 15:43:10 -0400 |
commit | 3201f3dd7370f2d29dfb689ae16f8f5d4066cc33 (patch) | |
tree | 345fecf8fe25d069af5a7484028f23b5efcdf58b /fs/nfs | |
parent | 7ad07353003d6ff69fe0b987813bb77b4d5ac23d (diff) | |
download | linux-3201f3dd7370f2d29dfb689ae16f8f5d4066cc33.tar.gz linux-3201f3dd7370f2d29dfb689ae16f8f5d4066cc33.tar.bz2 linux-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>
Diffstat (limited to 'fs/nfs')
-rw-r--r-- | fs/nfs/nfs4xdr.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c index a6b00e84bd1a..707975eebb5d 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; } |