Эх сурвалжийг харах

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>
Miklos Szeredi 13 жил өмнө
parent
commit
3637c05d88
1 өөрчлөгдсөн 1 нэмэгдсэн , 3 устгасан
  1. 1 3
      fs/namei.c

+ 1 - 3
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
 		 * __lookup_hash is called with the parent dir's i_mutex already
 		 * held, so we are good to go here.
 		 * 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)) {
 	if (dentry && (dentry->d_flags & DCACHE_OP_REVALIDATE)) {