summaryrefslogtreecommitdiffstats
path: root/fs/nfs/inode.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/nfs/inode.c')
-rw-r--r--fs/nfs/inode.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
index c764cfe456e5..2a03bfeec10a 100644
--- a/fs/nfs/inode.c
+++ b/fs/nfs/inode.c
@@ -1403,11 +1403,12 @@ static int nfs_check_inode_attributes(struct inode *inode, struct nfs_fattr *fat
1403 if (NFS_PROTO(inode)->have_delegation(inode, FMODE_READ)) 1403 if (NFS_PROTO(inode)->have_delegation(inode, FMODE_READ))
1404 return 0; 1404 return 0;
1405 1405
1406 /* No fileid? Just exit */ 1406 if (!(fattr->valid & NFS_ATTR_FATTR_FILEID)) {
1407 if (!(fattr->valid & NFS_ATTR_FATTR_FILEID)) 1407 /* Only a mounted-on-fileid? Just exit */
1408 return 0; 1408 if (fattr->valid & NFS_ATTR_FATTR_MOUNTED_ON_FILEID)
1409 return 0;
1409 /* Has the inode gone and changed behind our back? */ 1410 /* Has the inode gone and changed behind our back? */
1410 if (nfsi->fileid != fattr->fileid) { 1411 } else if (nfsi->fileid != fattr->fileid) {
1411 /* Is this perhaps the mounted-on fileid? */ 1412 /* Is this perhaps the mounted-on fileid? */
1412 if ((fattr->valid & NFS_ATTR_FATTR_MOUNTED_ON_FILEID) && 1413 if ((fattr->valid & NFS_ATTR_FATTR_MOUNTED_ON_FILEID) &&
1413 nfsi->fileid == fattr->mounted_on_fileid) 1414 nfsi->fileid == fattr->mounted_on_fileid)
@@ -1807,11 +1808,12 @@ static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr)
1807 nfs_display_fhandle_hash(NFS_FH(inode)), 1808 nfs_display_fhandle_hash(NFS_FH(inode)),
1808 atomic_read(&inode->i_count), fattr->valid); 1809 atomic_read(&inode->i_count), fattr->valid);
1809 1810
1810 /* No fileid? Just exit */ 1811 if (!(fattr->valid & NFS_ATTR_FATTR_FILEID)) {
1811 if (!(fattr->valid & NFS_ATTR_FATTR_FILEID)) 1812 /* Only a mounted-on-fileid? Just exit */
1812 return 0; 1813 if (fattr->valid & NFS_ATTR_FATTR_MOUNTED_ON_FILEID)
1814 return 0;
1813 /* Has the inode gone and changed behind our back? */ 1815 /* Has the inode gone and changed behind our back? */
1814 if (nfsi->fileid != fattr->fileid) { 1816 } else if (nfsi->fileid != fattr->fileid) {
1815 /* Is this perhaps the mounted-on fileid? */ 1817 /* Is this perhaps the mounted-on fileid? */
1816 if ((fattr->valid & NFS_ATTR_FATTR_MOUNTED_ON_FILEID) && 1818 if ((fattr->valid & NFS_ATTR_FATTR_MOUNTED_ON_FILEID) &&
1817 nfsi->fileid == fattr->mounted_on_fileid) 1819 nfsi->fileid == fattr->mounted_on_fileid)