]> git.hungrycats.org Git - linux/commitdiff
[PATCH] Reduce number of LOOKUP calls in nfs_lookup_revalidate()
authorTrond Myklebust <trond.myklebust@fys.uio.no>
Sat, 8 Jun 2002 10:50:55 +0000 (03:50 -0700)
committerLinus Torvalds <torvalds@home.transmeta.com>
Sat, 8 Jun 2002 10:50:55 +0000 (03:50 -0700)
fs/nfs/inode.c:
  - Ensure that we initialize NFS_MTIME_UPDATE(inode).

  - If a directory's mtime changed due to some action on our part
    (file creation/deletion/...) don't force a dcache revalidation by
    changing NFS_MTIME_UPDATE(inode).

fs/nfs/inode.c

index 9d61c8b75258e7dc7ba5a763f5d71c4bf75dcad8..77702d8c750d851f471f399609364c109a37a73b 100644 (file)
@@ -693,6 +693,7 @@ __nfs_fhget(struct super_block *sb, struct nfs_fh *fh, struct nfs_fattr *fattr)
                inode->i_atime = new_atime;
                NFS_CACHE_MTIME(inode) = new_mtime;
                inode->i_mtime = nfs_time_to_secs(new_mtime);
+               NFS_MTIME_UPDATE(inode) = jiffies;
                NFS_CACHE_ISIZE(inode) = new_size;
                inode->i_size = new_isize;
                inode->i_mode = fattr->mode;
@@ -1058,7 +1059,8 @@ __nfs_refresh_inode(struct inode *inode, struct nfs_fattr *fattr)
        inode->i_atime = new_atime;
 
        if (NFS_CACHE_MTIME(inode) != new_mtime) {
-               NFS_MTIME_UPDATE(inode) = jiffies;
+               if (invalid)
+                       NFS_MTIME_UPDATE(inode) = jiffies;
                NFS_CACHE_MTIME(inode) = new_mtime;
                inode->i_mtime = nfs_time_to_secs(new_mtime);
        }