Commit 48c8b0c5 authored by Al Viro's avatar Al Viro

link_path_walk: massage a bit more

Pull the block after the if-else in the end of what used to be do-while
body into all branches there.  We are almost done with the massage...
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent d40bcc09
...@@ -1803,6 +1803,8 @@ static int link_path_walk(const char *name, struct nameidata *nd) ...@@ -1803,6 +1803,8 @@ static int link_path_walk(const char *name, struct nameidata *nd)
if (unlikely(!s)) { if (unlikely(!s)) {
/* jumped */ /* jumped */
put_link(nd, &link, cookie); put_link(nd, &link, cookie);
current->link_count--;
nd->depth--;
} else { } else {
if (*s == '/') { if (*s == '/') {
if (!nd->root.mnt) if (!nd->root.mnt)
...@@ -1816,18 +1818,23 @@ static int link_path_walk(const char *name, struct nameidata *nd) ...@@ -1816,18 +1818,23 @@ static int link_path_walk(const char *name, struct nameidata *nd)
err = link_path_walk(s, nd); err = link_path_walk(s, nd);
if (unlikely(err)) { if (unlikely(err)) {
put_link(nd, &link, cookie); put_link(nd, &link, cookie);
current->link_count--;
nd->depth--;
return err;
} else { } else {
err = walk_component(nd, LOOKUP_FOLLOW); err = walk_component(nd, LOOKUP_FOLLOW);
put_link(nd, &link, cookie); put_link(nd, &link, cookie);
if (err > 0) current->link_count--;
nd->depth--;
if (err < 0)
return err;
if (err > 0) {
current->link_count++;
nd->depth++;
goto loop; goto loop;
}
} }
} }
current->link_count--;
nd->depth--;
if (err)
return err;
} }
if (!d_can_lookup(nd->path.dentry)) { if (!d_can_lookup(nd->path.dentry)) {
err = -ENOTDIR; err = -ENOTDIR;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment