diff options
-rw-r--r-- | fs/nfs/inode.c | 18 |
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) |