From: Al Viro Date: Sun, 19 Apr 2015 04:16:37 +0000 (-0400) Subject: namei: move the calls of may_follow_link() into follow_link() X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=21fef2176e50bf785eaac920d949fcac5e2db124;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git namei: move the calls of may_follow_link() into follow_link() All remaining callers of the former are preceded by the latter Signed-off-by: Al Viro --- diff --git a/fs/namei.c b/fs/namei.c index 2354d4fc0038..f7659eebc92d 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -882,9 +882,12 @@ out: static int follow_link(struct path *link, struct nameidata *nd, void **p) { - const char *s = get_link(link, nd, p); - int error; - + const char *s; + int error = may_follow_link(link, nd); + if (unlikely(error)) + return error; + nd->flags |= LOOKUP_PARENT; + s = get_link(link, nd, p); if (unlikely(IS_ERR(s))) return PTR_ERR(s); if (unlikely(!s)) @@ -2002,10 +2005,6 @@ static int path_lookupat(int dfd, const struct filename *name, while (err > 0) { void *cookie; struct path link = nd->link; - err = may_follow_link(&link, nd); - if (unlikely(err)) - break; - nd->flags |= LOOKUP_PARENT; err = follow_link(&link, nd, &cookie); if (err) break; @@ -2352,10 +2351,6 @@ path_mountpoint(int dfd, const struct filename *name, struct path *path, while (err > 0) { void *cookie; struct path link = *path; - err = may_follow_link(&link, nd); - if (unlikely(err)) - break; - nd->flags |= LOOKUP_PARENT; err = follow_link(&link, nd, &cookie); if (err) break; @@ -3239,10 +3234,6 @@ static struct file *path_openat(int dfd, struct filename *pathname, while (unlikely(error > 0)) { /* trailing symlink */ struct path link = nd->link; void *cookie; - error = may_follow_link(&link, nd); - if (unlikely(error)) - break; - nd->flags |= LOOKUP_PARENT; nd->flags &= ~(LOOKUP_OPEN|LOOKUP_CREATE|LOOKUP_EXCL); error = follow_link(&link, nd, &cookie); if (unlikely(error))