namei: simpler treatment of symlinks with nothing other that / in the body
Instead of saving name and branching to OK:, where we'll immediately restore it, and call walk_component() with WALK_PUT|WALK_GET and nd->last_type being LAST_BIND, which is equivalent to put_link(nd), err = 0, we can just treat that the same way we'd treat procfs-style "jump" symlinks - do put_link(nd) and move on. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
6920a4405e
commit
4f697a5e17
12
fs/namei.c
12
fs/namei.c
|
@ -1865,11 +1865,13 @@ static int link_path_walk(const char *name, struct nameidata *nd)
|
|||
;
|
||||
}
|
||||
nd->inode = nd->path.dentry->d_inode;
|
||||
nd->stack[nd->depth - 1].name = name;
|
||||
if (!*s)
|
||||
goto OK;
|
||||
name = s;
|
||||
continue;
|
||||
if (unlikely(!*s)) {
|
||||
put_link(nd);
|
||||
} else {
|
||||
nd->stack[nd->depth - 1].name = name;
|
||||
name = s;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!d_can_lookup(nd->path.dentry)) {
|
||||
|
|
Loading…
Reference in New Issue