fix the braino in "namei: massage lookup_slow() to be usable by lookup_one_len_unlocked()"
We should try to trigger automount *before* bailing out on negative dentry. Reported-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com> Reported-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com> Reported-by: Arend van Spriel <arend@broadcom.com> Tested-by: Arend van Spriel <arend@broadcom.com> Tested-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Родитель
f55532a0c0
Коммит
7500c38ac3
10
fs/namei.c
10
fs/namei.c
|
@ -1740,15 +1740,17 @@ static int walk_component(struct nameidata *nd, int flags)
|
|||
nd->flags);
|
||||
if (IS_ERR(path.dentry))
|
||||
return PTR_ERR(path.dentry);
|
||||
if (unlikely(d_is_negative(path.dentry))) {
|
||||
dput(path.dentry);
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
path.mnt = nd->path.mnt;
|
||||
err = follow_managed(&path, nd);
|
||||
if (unlikely(err < 0))
|
||||
return err;
|
||||
|
||||
if (unlikely(d_is_negative(path.dentry))) {
|
||||
path_to_nameidata(&path, nd);
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
seq = 0; /* we are already out of RCU mode */
|
||||
inode = d_backing_inode(path.dentry);
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче