summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorMiklos Szeredi <mszeredi@suse.cz>2012-03-26 14:54:20 +0400
committerAl Viro <viro@zeniv.linux.org.uk>2012-04-01 00:03:16 +0400
commit3637c05d881b2b7bab36f339245b8963f5b29c9f (patch)
tree771ea8149d971517934d7023a6f3d34ccc42068f /fs
parentfa4ee159512ee39b6c65ac40db986ea7a2f7de60 (diff)
downloadlinux-3637c05d881b2b7bab36f339245b8963f5b29c9f.tar.xz
vfs: don't revalidate just looked up dentry
__lookup_hash() calls ->lookup() if the dentry needs lookup and on success revalidates the dentry (all under dir->i_mutex). While this is harmless it doesn't make a lot of sense. Signed-off-by: Miklos Szeredi <mszeredi@suse.cz> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs')
-rw-r--r--fs/namei.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/fs/namei.c b/fs/namei.c
index 768f2366bddd..82f9568d315d 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -1869,9 +1869,7 @@ static struct dentry *__lookup_hash(struct qstr *name,
* __lookup_hash is called with the parent dir's i_mutex already
* held, so we are good to go here.
*/
- dentry = d_inode_lookup(base, dentry, nd);
- if (IS_ERR(dentry))
- return dentry;
+ return d_inode_lookup(base, dentry, nd);
}
if (dentry && (dentry->d_flags & DCACHE_OP_REVALIDATE)) {