aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2006-03-20 13:44:08 -0500
committerTrond Myklebust <Trond.Myklebust@netapp.com>2006-03-20 13:44:08 -0500
commitfb374d24f225f38f13dbffb65dd7ec72daf08dba (patch)
treebc87f6acbcb7a36ccb69930a6d10deed4fd1514a
parentc8d149f3dbd582a101aa7da7bdd6c3316efd11b4 (diff)
NFS: reduce the number of false cache invalidations.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
-rw-r--r--fs/nfs/inode.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
index 0e1ef97bcf54..24988f430e4b 100644
--- a/fs/nfs/inode.c
+++ b/fs/nfs/inode.c
@@ -1328,11 +1328,8 @@ static int nfs_check_inode_attributes(struct inode *inode, struct nfs_fattr *fat
1328 1328
1329 cur_size = i_size_read(inode); 1329 cur_size = i_size_read(inode);
1330 new_isize = nfs_size_to_loff_t(fattr->size); 1330 new_isize = nfs_size_to_loff_t(fattr->size);
1331 if (cur_size != new_isize) { 1331 if (cur_size != new_isize && nfsi->npages == 0)
1332 nfsi->cache_validity |= NFS_INO_INVALID_ATTR; 1332 nfsi->cache_validity |= NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE;
1333 if (nfsi->npages == 0)
1334 nfsi->cache_validity |= NFS_INO_REVAL_PAGECACHE;
1335 }
1336 1333
1337 /* Have any file permissions changed? */ 1334 /* Have any file permissions changed? */
1338 if ((inode->i_mode & S_IALLUGO) != (fattr->mode & S_IALLUGO) 1335 if ((inode->i_mode & S_IALLUGO) != (fattr->mode & S_IALLUGO)