From 61e68af33ac7977ea2457a861ab8eeb2406cb3f1 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Wed, 20 Aug 2025 20:22:10 -0400 Subject: [PATCH] put_mnt_ns(): use guards clean fit; guards can't be weaker due to umount_tree() call. Setting emptied_ns requires namespace_excl, but not anything mount_lock-related. Reviewed-by: Christian Brauner Signed-off-by: Al Viro --- fs/namespace.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/fs/namespace.c b/fs/namespace.c index 898a6b7307e42..86a86be2b0ef1 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -6153,12 +6153,10 @@ void put_mnt_ns(struct mnt_namespace *ns) { if (!refcount_dec_and_test(&ns->ns.count)) return; - namespace_lock(); + guard(namespace_excl)(); emptied_ns = ns; - lock_mount_hash(); + guard(mount_writer)(); umount_tree(ns->root, 0); - unlock_mount_hash(); - namespace_unlock(); } struct vfsmount *kern_mount(struct file_system_type *type) -- 2.47.3