NFS: Set NFS_INO_REVAL_PAGECACHE if the change attribute is uninitialised
We can't allow caching of data until the change attribute has been initialised correctly. Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
This commit is contained in:
parent
85a23cee3f
commit
5c675d6420
1 changed files with 2 additions and 1 deletions
|
@ -443,7 +443,8 @@ nfs_fhget(struct super_block *sb, struct nfs_fh *fh, struct nfs_fattr *fattr, st
|
||||||
if (fattr->valid & NFS_ATTR_FATTR_CHANGE)
|
if (fattr->valid & NFS_ATTR_FATTR_CHANGE)
|
||||||
inode->i_version = fattr->change_attr;
|
inode->i_version = fattr->change_attr;
|
||||||
else if (nfs_server_capable(inode, NFS_CAP_CHANGE_ATTR))
|
else if (nfs_server_capable(inode, NFS_CAP_CHANGE_ATTR))
|
||||||
nfs_set_cache_invalid(inode, NFS_INO_INVALID_ATTR);
|
nfs_set_cache_invalid(inode, NFS_INO_INVALID_ATTR
|
||||||
|
| NFS_INO_REVAL_PAGECACHE);
|
||||||
if (fattr->valid & NFS_ATTR_FATTR_SIZE)
|
if (fattr->valid & NFS_ATTR_FATTR_SIZE)
|
||||||
inode->i_size = nfs_size_to_loff_t(fattr->size);
|
inode->i_size = nfs_size_to_loff_t(fattr->size);
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in a new issue