Loading fs/namei.c +6 −15 Original line number Diff line number Diff line Loading @@ -882,9 +882,12 @@ get_link(struct path *link, struct nameidata *nd, void **p) 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)) Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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)) Loading Loading
fs/namei.c +6 −15 Original line number Diff line number Diff line Loading @@ -882,9 +882,12 @@ get_link(struct path *link, struct nameidata *nd, void **p) 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)) Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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)) Loading