diff options
Diffstat (limited to 'fs/nfs')
-rw-r--r-- | fs/nfs/dir.c | 10 | ||||
-rw-r--r-- | fs/nfs/inode.c | 1 |
2 files changed, 3 insertions, 8 deletions
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index 2b5e611352c5..6518b098e625 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c | |||
@@ -650,15 +650,11 @@ static int nfs_fsync_dir(struct file *filp, struct dentry *dentry, int datasync) | |||
650 | */ | 650 | */ |
651 | static int nfs_check_verifier(struct inode *dir, struct dentry *dentry) | 651 | static int nfs_check_verifier(struct inode *dir, struct dentry *dentry) |
652 | { | 652 | { |
653 | unsigned long verf; | ||
654 | |||
655 | if (IS_ROOT(dentry)) | 653 | if (IS_ROOT(dentry)) |
656 | return 1; | 654 | return 1; |
657 | verf = dentry->d_time; | 655 | if (dentry->d_time == NFS_I(dir)->cache_change_attribute) |
658 | if (nfs_caches_unstable(dir) | 656 | return 1; |
659 | || verf != NFS_I(dir)->cache_change_attribute) | 657 | return 0; |
660 | return 0; | ||
661 | return 1; | ||
662 | } | 658 | } |
663 | 659 | ||
664 | static inline void nfs_set_verifier(struct dentry * dentry, unsigned long verf) | 660 | static inline void nfs_set_verifier(struct dentry * dentry, unsigned long verf) |
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c index ed035a81eea2..cca1ab2922bf 100644 --- a/fs/nfs/inode.c +++ b/fs/nfs/inode.c | |||
@@ -785,7 +785,6 @@ void nfs_end_data_update(struct inode *inode) | |||
785 | nfsi->cache_validity |= NFS_INO_INVALID_DATA; | 785 | nfsi->cache_validity |= NFS_INO_INVALID_DATA; |
786 | spin_unlock(&inode->i_lock); | 786 | spin_unlock(&inode->i_lock); |
787 | } | 787 | } |
788 | nfsi->cache_change_attribute = jiffies; | ||
789 | atomic_dec(&nfsi->data_updates); | 788 | atomic_dec(&nfsi->data_updates); |
790 | } | 789 | } |
791 | 790 | ||