diff options
author | Chuck Lever <cel@netapp.com> | 2005-10-25 11:48:36 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2005-10-27 22:12:40 -0400 |
commit | 0c70b50150cfb0b43ff500a8a394a52b4d5f1350 (patch) | |
tree | 292d31ce5378edb856076d2c610c323b76af0b09 /fs/nfs | |
parent | decf491f3076190262d4c649bed877650623903a (diff) | |
download | op-kernel-dev-0c70b50150cfb0b43ff500a8a394a52b4d5f1350.zip op-kernel-dev-0c70b50150cfb0b43ff500a8a394a52b4d5f1350.tar.gz |
NFS: nfs_lookup doesn't need to revalidate the parent directory's inode
nfs_lookup() used to consult a lookup cache before trying an actual wire
lookup operation. The lookup cache would be invalid, of course, if the
parent directory's mtime had changed, so nfs_lookup performed an inode
revalidation on the parent.
Since nfs_lookup() doesn't use a cache anymore, the revalidation is no
longer necessary. There are cases where it will generate a lot of
unnecessary GETATTR traffic.
See http://bugzilla.linux-nfs.org/show_bug.cgi?id=9
Test-plan:
Use lndir and "rm -rf" and watch for excess GETATTR traffic or application
level errors.
Signed-off-by: Chuck Lever <cel@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs')
-rw-r--r-- | fs/nfs/dir.c | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index b8a7304..ce8f77d 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c @@ -853,12 +853,6 @@ static struct dentry *nfs_lookup(struct inode *dir, struct dentry * dentry, stru dentry->d_op = NFS_PROTO(dir)->dentry_ops; lock_kernel(); - /* Revalidate parent directory attribute cache */ - error = nfs_revalidate_inode(NFS_SERVER(dir), dir); - if (error < 0) { - res = ERR_PTR(error); - goto out_unlock; - } /* If we're doing an exclusive create, optimize away the lookup */ if (nfs_is_exclusive_create(dir, nd)) |