Commit 12b09578 authored by Al Viro's avatar Al Viro

link_path_walk: don't bother with walk_component() after jumping link

... it does nothing if nd->last_type is LAST_BIND.
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent b0c24c3b
...@@ -1797,7 +1797,11 @@ static int link_path_walk(const char *name, struct nameidata *nd) ...@@ -1797,7 +1797,11 @@ static int link_path_walk(const char *name, struct nameidata *nd)
return err; return err;
} }
err = 0; err = 0;
if (likely(s)) { if (unlikely(!s)) {
/* jumped */
put_link(nd, &link, cookie);
break;
} else {
if (*s == '/') { if (*s == '/') {
if (!nd->root.mnt) if (!nd->root.mnt)
set_root(nd); set_root(nd);
...@@ -1812,9 +1816,9 @@ static int link_path_walk(const char *name, struct nameidata *nd) ...@@ -1812,9 +1816,9 @@ static int link_path_walk(const char *name, struct nameidata *nd)
put_link(nd, &link, cookie); put_link(nd, &link, cookie);
break; break;
} }
err = walk_component(nd, LOOKUP_FOLLOW);
put_link(nd, &link, cookie);
} }
err = walk_component(nd, LOOKUP_FOLLOW);
put_link(nd, &link, cookie);
} while (err > 0); } while (err > 0);
current->link_count--; current->link_count--;
......
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