diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2015-04-19 00:16:37 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2015-05-10 22:19:53 -0400 |
commit | 21fef2176e50bf785eaac920d949fcac5e2db124 (patch) | |
tree | 14a46cc96b3aad9b21fe23b7bf5408c8b744fe8c /fs | |
parent | 172a39a059bb8d84649bcad3e252fe416ad188a8 (diff) | |
download | blackbird-op-linux-21fef2176e50bf785eaac920d949fcac5e2db124.tar.gz blackbird-op-linux-21fef2176e50bf785eaac920d949fcac5e2db124.zip |
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 <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/namei.c | 21 |
1 files changed, 6 insertions, 15 deletions
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)) |