Commit 7500c38a authored by Al Viro's avatar Al Viro

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: default avatarJun'ichi Nomura <j-nomura@ce.jp.nec.com>
Reported-by: default avatarJun'ichi Nomura <j-nomura@ce.jp.nec.com>
Reported-by: default avatarArend van Spriel <arend@broadcom.com>
Tested-by: default avatarArend van Spriel <arend@broadcom.com>
Tested-by: default avatarJun'ichi Nomura <j-nomura@ce.jp.nec.com>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent f55532a0
...@@ -1740,15 +1740,17 @@ static int walk_component(struct nameidata *nd, int flags) ...@@ -1740,15 +1740,17 @@ static int walk_component(struct nameidata *nd, int flags)
nd->flags); nd->flags);
if (IS_ERR(path.dentry)) if (IS_ERR(path.dentry))
return PTR_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; path.mnt = nd->path.mnt;
err = follow_managed(&path, nd); err = follow_managed(&path, nd);
if (unlikely(err < 0)) if (unlikely(err < 0))
return err; 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 */ seq = 0; /* we are already out of RCU mode */
inode = d_backing_inode(path.dentry); inode = d_backing_inode(path.dentry);
} }
......
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