From: Al Viro Date: Sat, 15 Apr 2017 21:29:14 +0000 (-0400) Subject: path_init(): don't bother with checking MAY_EXEC for LOOKUP_ROOT X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=93893862fb7ba704ec5a6872a294c9cc2b0d4ca3;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git path_init(): don't bother with checking MAY_EXEC for LOOKUP_ROOT we'll hit that check in link_path_walk() anyway. Signed-off-by: Al Viro --- diff --git a/fs/namei.c b/fs/namei.c index 19dcf62133cc..60c0a78ebca7 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -2142,7 +2142,6 @@ OK: static const char *path_init(struct nameidata *nd, unsigned flags) { - int retval = 0; const char *s = nd->name->name; if (!*s) @@ -2154,13 +2153,8 @@ static const char *path_init(struct nameidata *nd, unsigned flags) if (flags & LOOKUP_ROOT) { struct dentry *root = nd->root.dentry; struct inode *inode = root->d_inode; - if (*s) { - if (!d_can_lookup(root)) - return ERR_PTR(-ENOTDIR); - retval = inode_permission(inode, MAY_EXEC); - if (retval) - return ERR_PTR(retval); - } + if (*s && unlikely(!d_can_lookup(root))) + return ERR_PTR(-ENOTDIR); nd->path = nd->root; nd->inode = inode; if (flags & LOOKUP_RCU) {