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 | |
parent | 7ad07353003d6ff69fe0b987813bb77b4d5ac23d (diff) |
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')
-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, | |||
3912 | status = decode_attr_mounted_on_fileid(xdr, bitmap, &fileid); | 3912 | status = decode_attr_mounted_on_fileid(xdr, bitmap, &fileid); |
3913 | if (status < 0) | 3913 | if (status < 0) |
3914 | goto xdr_error; | 3914 | goto xdr_error; |
3915 | if (status != 0) { | 3915 | if (status != 0 && !(fattr->valid & status)) { |
3916 | fattr->fileid = fileid; | 3916 | fattr->fileid = fileid; |
3917 | fattr->valid |= status; | 3917 | fattr->valid |= status; |
3918 | } | 3918 | } |