@@ -1403,11 +1403,12 @@ static int nfs_check_inode_attributes(struct inode *inode, struct nfs_fattr *fat
1403
1403
if (NFS_PROTO (inode )-> have_delegation (inode , FMODE_READ ))
1404
1404
return 0 ;
1405
1405
1406
- /* No fileid? Just exit */
1407
- if (!(fattr -> valid & NFS_ATTR_FATTR_FILEID ))
1408
- return 0 ;
1406
+ if (!(fattr -> valid & NFS_ATTR_FATTR_FILEID )) {
1407
+ /* Only a mounted-on-fileid? Just exit */
1408
+ if (fattr -> valid & NFS_ATTR_FATTR_MOUNTED_ON_FILEID )
1409
+ return 0 ;
1409
1410
/* Has the inode gone and changed behind our back? */
1410
- if (nfsi -> fileid != fattr -> fileid ) {
1411
+ } else if (nfsi -> fileid != fattr -> fileid ) {
1411
1412
/* Is this perhaps the mounted-on fileid? */
1412
1413
if ((fattr -> valid & NFS_ATTR_FATTR_MOUNTED_ON_FILEID ) &&
1413
1414
nfsi -> fileid == fattr -> mounted_on_fileid )
@@ -1807,11 +1808,12 @@ static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr)
1807
1808
nfs_display_fhandle_hash (NFS_FH (inode )),
1808
1809
atomic_read (& inode -> i_count ), fattr -> valid );
1809
1810
1810
- /* No fileid? Just exit */
1811
- if (!(fattr -> valid & NFS_ATTR_FATTR_FILEID ))
1812
- return 0 ;
1811
+ if (!(fattr -> valid & NFS_ATTR_FATTR_FILEID )) {
1812
+ /* Only a mounted-on-fileid? Just exit */
1813
+ if (fattr -> valid & NFS_ATTR_FATTR_MOUNTED_ON_FILEID )
1814
+ return 0 ;
1813
1815
/* Has the inode gone and changed behind our back? */
1814
- if (nfsi -> fileid != fattr -> fileid ) {
1816
+ } else if (nfsi -> fileid != fattr -> fileid ) {
1815
1817
/* Is this perhaps the mounted-on fileid? */
1816
1818
if ((fattr -> valid & NFS_ATTR_FATTR_MOUNTED_ON_FILEID ) &&
1817
1819
nfsi -> fileid == fattr -> mounted_on_fileid )
0 commit comments