From: Al Viro <v...@zeniv.linux.org.uk>

All remaining callers of the former are preceded by the latter

Signed-off-by: Al Viro <v...@zeniv.linux.org.uk>
---
 fs/namei.c | 21 ++++++---------------
 1 file changed, 6 insertions(+), 15 deletions(-)

diff --git a/fs/namei.c b/fs/namei.c
index 71c9546..e03c18f 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -922,9 +922,12 @@ out:
 
 static int follow_link(struct path *link, struct nameidata *nd, void **p)
 {
-       char *s = get_link(link, nd, p);
-       int error;
-
+       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))
@@ -2063,10 +2066,6 @@ static int path_lookupat(int dfd, const struct filename 
*name,
                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;
@@ -2421,10 +2420,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;
@@ -3313,10 +3308,6 @@ static struct file *path_openat(int dfd, struct filename 
*pathname,
                        error = -ELOOP;
                        break;
                }
-               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))
-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to