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: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
b0c24c3bdf
commit
12b0957800
10
fs/namei.c
10
fs/namei.c
|
@ -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)
|
||||||
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--;
|
||||||
|
|
Loading…
Reference in New Issue