link_path_walk: use explicit returns for failure exits
authorAl Viro <viro@zeniv.linux.org.uk>
Sat, 9 May 2015 20:54:45 +0000 (16:54 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Mon, 11 May 2015 12:13:08 +0000 (08:13 -0400)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/namei.c

index 27c38591b4ecafc7089629652050492eebcb79b3..756e150c28fc0f9a153c00d9589bf93f395fc6c1 100644 (file)
@@ -1772,7 +1772,7 @@ static int link_path_walk(const char *name, struct nameidata *nd)
 
                err = may_lookup(nd);
                if (err)
-                       break;
+                       return err;
 
                hash_len = hash_name(name);
 
@@ -1794,7 +1794,7 @@ static int link_path_walk(const char *name, struct nameidata *nd)
                                struct qstr this = { { .hash_len = hash_len }, .name = name };
                                err = parent->d_op->d_hash(parent, &this);
                                if (err < 0)
-                                       break;
+                                       return err;
                                hash_len = this.hash_len;
                                name = this.name;
                        }
@@ -1829,15 +1829,13 @@ OK:
                        err = walk_component(nd, WALK_GET);
                }
                if (err < 0)
-                       break;
+                       return err;
 
                if (err) {
                        const char *s = get_link(nd);
 
-                       if (unlikely(IS_ERR(s))) {
-                               err = PTR_ERR(s);
-                               break;
-                       }
+                       if (unlikely(IS_ERR(s)))
+                               return PTR_ERR(s);
                        err = 0;
                        if (unlikely(!s)) {
                                /* jumped */
@@ -1848,12 +1846,9 @@ OK:
                                continue;
                        }
                }
-               if (!d_can_lookup(nd->path.dentry)) {
-                       err = -ENOTDIR;
-                       break;
-               }
+               if (unlikely(!d_can_lookup(nd->path.dentry)))
+                       return -ENOTDIR;
        }
-       return err;
 }
 
 static const char *path_init(int dfd, const struct filename *name,