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

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

diff --git a/fs/namei.c b/fs/namei.c
index 955dc7f..308f325 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -3052,6 +3052,11 @@ finish_lookup:
                        }
                }
                BUG_ON(inode != path->dentry->d_inode);
+               if (!(nd->flags & LOOKUP_FOLLOW)) {
+                       path_put_conditional(path, nd);
+                       path_put(&nd->path);
+                       return -ELOOP;
+               }
                return 1;
        }
 
@@ -3236,12 +3241,6 @@ static struct file *path_openat(int dfd, struct filename 
*pathname,
        while (unlikely(error > 0)) { /* trailing symlink */
                struct path link = path;
                void *cookie;
-               if (!(nd->flags & LOOKUP_FOLLOW)) {
-                       path_put_conditional(&path, nd);
-                       path_put(&nd->path);
-                       error = -ELOOP;
-                       break;
-               }
                error = may_follow_link(&link, nd);
                if (unlikely(error))
                        break;
-- 
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