From a1643a92f6de92074116922a2d2906dd33499ff4 Mon Sep 17 00:00:00 2001 From: Trond Myklebust Date: Sat, 29 Sep 2007 17:25:43 -0400 Subject: [PATCH] NFS: NFS_CACHEINV() should not test for nfs_caches_unstable() The fact that we're in the process of modifying the inode does not mean that we should not invalidate the attribute and data caches. The defensive thing is to always invalidate when we're confronted with inode mtime/ctime or change_attribute updates that we do not immediately recognise. Signed-off-by: Trond Myklebust --- fs/nfs/dir.c | 2 +- include/linux/nfs_fs.h | 6 ------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index 35b447d79db..a03ed2f8504 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c @@ -788,7 +788,7 @@ static int nfs_lookup_revalidate(struct dentry * dentry, struct nameidata *nd) out_zap_parent: nfs_zap_caches(dir); out_bad: - NFS_CACHEINV(dir); + nfs_mark_for_revalidate(dir); if (inode && S_ISDIR(inode->i_mode)) { /* Purge readdir caches. */ nfs_zap_caches(inode); diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h index 35d61924e0b..c947803a7ba 100644 --- a/include/linux/nfs_fs.h +++ b/include/linux/nfs_fs.h @@ -240,12 +240,6 @@ static inline void nfs_mark_for_revalidate(struct inode *inode) spin_unlock(&inode->i_lock); } -static inline void NFS_CACHEINV(struct inode *inode) -{ - if (!nfs_caches_unstable(inode)) - nfs_mark_for_revalidate(inode); -} - static inline int nfs_server_capable(struct inode *inode, int cap) { return NFS_SERVER(inode)->caps & cap; -- 2.11.4.GIT