mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-09 07:23:14 +00:00
NFS: Set the force revalidate flag if the inode is not completely initialised
Ensure that a delegation doesn't cause us to skip initialising the inode if it was incomplete when we exited nfs_fhget() Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
This commit is contained in:
parent
3cb3fd6da4
commit
821a868a23
@ -448,6 +448,7 @@ nfs_fhget(struct super_block *sb, struct nfs_fh *fh, struct nfs_fattr *fattr, st
|
|||||||
/* We can't support update_atime(), since the server will reset it */
|
/* We can't support update_atime(), since the server will reset it */
|
||||||
inode->i_flags |= S_NOATIME|S_NOCMTIME;
|
inode->i_flags |= S_NOATIME|S_NOCMTIME;
|
||||||
inode->i_mode = fattr->mode;
|
inode->i_mode = fattr->mode;
|
||||||
|
nfsi->cache_validity = 0;
|
||||||
if ((fattr->valid & NFS_ATTR_FATTR_MODE) == 0
|
if ((fattr->valid & NFS_ATTR_FATTR_MODE) == 0
|
||||||
&& nfs_server_capable(inode, NFS_CAP_MODE))
|
&& nfs_server_capable(inode, NFS_CAP_MODE))
|
||||||
nfs_set_cache_invalid(inode, NFS_INO_INVALID_OTHER);
|
nfs_set_cache_invalid(inode, NFS_INO_INVALID_OTHER);
|
||||||
@ -534,6 +535,9 @@ nfs_fhget(struct super_block *sb, struct nfs_fh *fh, struct nfs_fattr *fattr, st
|
|||||||
inode->i_blocks = nfs_calc_block_size(fattr->du.nfs3.used);
|
inode->i_blocks = nfs_calc_block_size(fattr->du.nfs3.used);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (nfsi->cache_validity != 0)
|
||||||
|
nfsi->cache_validity |= NFS_INO_REVAL_FORCED;
|
||||||
|
|
||||||
nfs_setsecurity(inode, fattr, label);
|
nfs_setsecurity(inode, fattr, label);
|
||||||
|
|
||||||
nfsi->attrtimeo = NFS_MINATTRTIMEO(inode);
|
nfsi->attrtimeo = NFS_MINATTRTIMEO(inode);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user