mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-09 18:42:14 -04:00
Merge tag 'nfs-for-5.3-4' of git://git.linux-nfs.org/projects/trondmy/linux-nfs
Pull NFS client bugfix from Trond Myklebust: "Regression fix inode fileid checks in attribute revalidation code" * tag 'nfs-for-5.3-4' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: NFS: Fix inode fileid checks in attribute revalidation code
This commit is contained in:
@@ -1403,11 +1403,12 @@ static int nfs_check_inode_attributes(struct inode *inode, struct nfs_fattr *fat
|
||||
if (NFS_PROTO(inode)->have_delegation(inode, FMODE_READ))
|
||||
return 0;
|
||||
|
||||
/* No fileid? Just exit */
|
||||
if (!(fattr->valid & NFS_ATTR_FATTR_FILEID))
|
||||
return 0;
|
||||
if (!(fattr->valid & NFS_ATTR_FATTR_FILEID)) {
|
||||
/* Only a mounted-on-fileid? Just exit */
|
||||
if (fattr->valid & NFS_ATTR_FATTR_MOUNTED_ON_FILEID)
|
||||
return 0;
|
||||
/* Has the inode gone and changed behind our back? */
|
||||
if (nfsi->fileid != fattr->fileid) {
|
||||
} else if (nfsi->fileid != fattr->fileid) {
|
||||
/* Is this perhaps the mounted-on fileid? */
|
||||
if ((fattr->valid & NFS_ATTR_FATTR_MOUNTED_ON_FILEID) &&
|
||||
nfsi->fileid == fattr->mounted_on_fileid)
|
||||
@@ -1807,11 +1808,12 @@ static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr)
|
||||
nfs_display_fhandle_hash(NFS_FH(inode)),
|
||||
atomic_read(&inode->i_count), fattr->valid);
|
||||
|
||||
/* No fileid? Just exit */
|
||||
if (!(fattr->valid & NFS_ATTR_FATTR_FILEID))
|
||||
return 0;
|
||||
if (!(fattr->valid & NFS_ATTR_FATTR_FILEID)) {
|
||||
/* Only a mounted-on-fileid? Just exit */
|
||||
if (fattr->valid & NFS_ATTR_FATTR_MOUNTED_ON_FILEID)
|
||||
return 0;
|
||||
/* Has the inode gone and changed behind our back? */
|
||||
if (nfsi->fileid != fattr->fileid) {
|
||||
} else if (nfsi->fileid != fattr->fileid) {
|
||||
/* Is this perhaps the mounted-on fileid? */
|
||||
if ((fattr->valid & NFS_ATTR_FATTR_MOUNTED_ON_FILEID) &&
|
||||
nfsi->fileid == fattr->mounted_on_fileid)
|
||||
|
||||
Reference in New Issue
Block a user