|
@@ -1314,7 +1314,7 @@ static unsigned long nfs_wcc_update_inode(struct inode *inode, struct nfs_fattr
|
|
|
|
|
|
if ((fattr->valid & NFS_ATTR_FATTR_PRECHANGE)
|
|
if ((fattr->valid & NFS_ATTR_FATTR_PRECHANGE)
|
|
&& (fattr->valid & NFS_ATTR_FATTR_CHANGE)
|
|
&& (fattr->valid & NFS_ATTR_FATTR_CHANGE)
|
|
- && !inode_cmp_iversion_raw(inode, fattr->pre_change_attr)) {
|
|
|
|
|
|
+ && inode_eq_iversion_raw(inode, fattr->pre_change_attr)) {
|
|
inode_set_iversion_raw(inode, fattr->change_attr);
|
|
inode_set_iversion_raw(inode, fattr->change_attr);
|
|
if (S_ISDIR(inode->i_mode))
|
|
if (S_ISDIR(inode->i_mode))
|
|
nfs_set_cache_invalid(inode, NFS_INO_INVALID_DATA);
|
|
nfs_set_cache_invalid(inode, NFS_INO_INVALID_DATA);
|
|
@@ -1373,7 +1373,7 @@ static int nfs_check_inode_attributes(struct inode *inode, struct nfs_fattr *fat
|
|
|
|
|
|
if (!nfs_file_has_buffered_writers(nfsi)) {
|
|
if (!nfs_file_has_buffered_writers(nfsi)) {
|
|
/* Verify a few of the more important attributes */
|
|
/* Verify a few of the more important attributes */
|
|
- if ((fattr->valid & NFS_ATTR_FATTR_CHANGE) != 0 && inode_cmp_iversion_raw(inode, fattr->change_attr))
|
|
|
|
|
|
+ if ((fattr->valid & NFS_ATTR_FATTR_CHANGE) != 0 && !inode_eq_iversion_raw(inode, fattr->change_attr))
|
|
invalid |= NFS_INO_INVALID_ATTR | NFS_INO_REVAL_PAGECACHE;
|
|
invalid |= NFS_INO_INVALID_ATTR | NFS_INO_REVAL_PAGECACHE;
|
|
|
|
|
|
if ((fattr->valid & NFS_ATTR_FATTR_MTIME) && !timespec_equal(&inode->i_mtime, &fattr->mtime))
|
|
if ((fattr->valid & NFS_ATTR_FATTR_MTIME) && !timespec_equal(&inode->i_mtime, &fattr->mtime))
|
|
@@ -1803,7 +1803,7 @@ static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr)
|
|
|
|
|
|
/* More cache consistency checks */
|
|
/* More cache consistency checks */
|
|
if (fattr->valid & NFS_ATTR_FATTR_CHANGE) {
|
|
if (fattr->valid & NFS_ATTR_FATTR_CHANGE) {
|
|
- if (inode_cmp_iversion_raw(inode, fattr->change_attr)) {
|
|
|
|
|
|
+ if (!inode_eq_iversion_raw(inode, 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);
|
|
/* Could it be a race with writeback? */
|
|
/* Could it be a race with writeback? */
|