From: Al Viro Date: Fri, 6 Apr 2018 20:45:33 +0000 (-0400) Subject: make lookup_one_len() safe to use with directory locked shared X-Git-Tag: v4.17-rc1~68^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8613a209ffa6dd2c19c405fa699a062035dec9b0;p=thirdparty%2Flinux.git make lookup_one_len() safe to use with directory locked shared Signed-off-by: Al Viro --- diff --git a/fs/namei.c b/fs/namei.c index ba48e154409bc..6e0f6eea98960 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);