diff --git a/fs/namespace.c b/fs/namespace.c index 854f4fc664697..52d08fba45063 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -2747,6 +2747,17 @@ static void do_lock_mount(const struct path *path, } } + if (unlikely(!dentry || !dentry->d_inode)) { + err = -ENOENT; + if (&m->mnt != path->mnt) { + if (dentry) + dput(dentry); + mntput(&m->mnt); + } + res->parent = ERR_PTR(err); + return; + } + inode_lock(dentry->d_inode); namespace_lock();