NFS: Don't revalidate dentries on directory size or ctime changes
We only need to look at the mtime changes... Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
2f78e4313a
commit
12b373ebf0
@ -1015,10 +1015,8 @@ static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr)
|
|||||||
nfsi->cache_change_attribute = now;
|
nfsi->cache_change_attribute = now;
|
||||||
}
|
}
|
||||||
/* If ctime has changed we should definitely clear access+acl caches */
|
/* If ctime has changed we should definitely clear access+acl caches */
|
||||||
if (!timespec_equal(&inode->i_ctime, &fattr->ctime)) {
|
if (!timespec_equal(&inode->i_ctime, &fattr->ctime))
|
||||||
invalid |= NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL;
|
invalid |= NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL;
|
||||||
nfsi->cache_change_attribute = now;
|
|
||||||
}
|
|
||||||
} else if (nfsi->change_attr != fattr->change_attr) {
|
} else if (nfsi->change_attr != fattr->change_attr) {
|
||||||
dprintk("NFS: change_attr change on server for file %s/%ld\n",
|
dprintk("NFS: change_attr change on server for file %s/%ld\n",
|
||||||
inode->i_sb->s_id, inode->i_ino);
|
inode->i_sb->s_id, inode->i_ino);
|
||||||
@ -1036,7 +1034,6 @@ static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr)
|
|||||||
inode->i_size = new_isize;
|
inode->i_size = new_isize;
|
||||||
invalid |= NFS_INO_INVALID_ATTR|NFS_INO_INVALID_DATA;
|
invalid |= NFS_INO_INVALID_ATTR|NFS_INO_INVALID_DATA;
|
||||||
}
|
}
|
||||||
nfsi->cache_change_attribute = now;
|
|
||||||
dprintk("NFS: isize change on server for file %s/%ld\n",
|
dprintk("NFS: isize change on server for file %s/%ld\n",
|
||||||
inode->i_sb->s_id, inode->i_ino);
|
inode->i_sb->s_id, inode->i_ino);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user