]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
fs: add mount namespace to rbtree late
authorChristian Brauner <brauner@kernel.org>
Thu, 12 Dec 2024 23:03:41 +0000 (00:03 +0100)
committerChristian Brauner <brauner@kernel.org>
Thu, 9 Jan 2025 15:58:51 +0000 (16:58 +0100)
There's no point doing that under the namespace semaphore it just gives
the false impression that it protects the mount namespace rbtree and it
simply doesn't.

Link: https://lore.kernel.org/r/20241213-work-mount-rbtree-lockless-v3-2-6e3cdaf9b280@kernel.org
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/namespace.c

index a1832e9a4340bec853d8faec6d2715d9faacfc66..0ca2cda6bc16cfe0f15ec31146b56682b78ebf4d 100644 (file)
@@ -3981,7 +3981,6 @@ struct mnt_namespace *copy_mnt_ns(unsigned long flags, struct mnt_namespace *ns,
                while (p->mnt.mnt_root != q->mnt.mnt_root)
                        p = next_mnt(skip_mnt_tree(p), old);
        }
-       mnt_ns_tree_add(new_ns);
        namespace_unlock();
 
        if (rootmnt)
@@ -3989,6 +3988,7 @@ struct mnt_namespace *copy_mnt_ns(unsigned long flags, struct mnt_namespace *ns,
        if (pwdmnt)
                mntput(pwdmnt);
 
+       mnt_ns_tree_add(new_ns);
        return new_ns;
 }