From 8613a209ffa6dd2c19c405fa699a062035dec9b0 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Fri, 6 Apr 2018 16:45:33 -0400 Subject: [PATCH] make lookup_one_len() safe to use with directory locked shared Signed-off-by: Al Viro --- fs/namei.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fs/namei.c b/fs/namei.c index ba48e154409b..6e0f6eea9896 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -2471,6 +2471,7 @@ static int lookup_one_len_common(const char *name, struct dentry *base, */ struct dentry *lookup_one_len(const char *name, struct dentry *base, int len) { + struct dentry *dentry; struct qstr this; int err; @@ -2480,7 +2481,8 @@ struct dentry *lookup_one_len(const char *name, struct dentry *base, int len) if (err) return ERR_PTR(err); - return __lookup_hash(&this, base, 0); + dentry = lookup_dcache(&this, base, 0); + return dentry ? dentry : __lookup_slow(&this, base, 0); } EXPORT_SYMBOL(lookup_one_len);