kill walk_init_root
walk_init_root is a tiny helper that is marked __always_inline, has just one caller and an unused argument. Just merge it into the caller. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
66f221875d
commit
b4091d5f6f
1 changed files with 8 additions and 13 deletions
21
fs/namei.c
21
fs/namei.c
|
@ -526,18 +526,6 @@ static struct dentry * real_lookup(struct dentry * parent, struct qstr * name, s
|
|||
return result;
|
||||
}
|
||||
|
||||
/* SMP-safe */
|
||||
static __always_inline void
|
||||
walk_init_root(const char *name, struct nameidata *nd)
|
||||
{
|
||||
struct fs_struct *fs = current->fs;
|
||||
|
||||
read_lock(&fs->lock);
|
||||
nd->path = fs->root;
|
||||
path_get(&fs->root);
|
||||
read_unlock(&fs->lock);
|
||||
}
|
||||
|
||||
/*
|
||||
* Wrapper to retry pathname resolution whenever the underlying
|
||||
* file system returns an ESTALE.
|
||||
|
@ -575,9 +563,16 @@ static __always_inline int __vfs_follow_link(struct nameidata *nd, const char *l
|
|||
goto fail;
|
||||
|
||||
if (*link == '/') {
|
||||
struct fs_struct *fs = current->fs;
|
||||
|
||||
path_put(&nd->path);
|
||||
walk_init_root(link, nd);
|
||||
|
||||
read_lock(&fs->lock);
|
||||
nd->path = fs->root;
|
||||
path_get(&fs->root);
|
||||
read_unlock(&fs->lock);
|
||||
}
|
||||
|
||||
res = link_path_walk(link, nd);
|
||||
if (nd->depth || res || nd->last_type!=LAST_NORM)
|
||||
return res;
|
||||
|
|
Loading…
Reference in a new issue