]> www.infradead.org Git - users/hch/misc.git/commitdiff
__is_local_mountpoint(): use guards
authorAl Viro <viro@zeniv.linux.org.uk>
Thu, 21 Aug 2025 00:14:22 +0000 (20:14 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Tue, 2 Sep 2025 23:35:56 +0000 (19:35 -0400)
clean fit; namespace_shared due to iterating through ns->mounts.

Reviewed-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/namespace.c

index 1ae1ab8815c9b6aaa0e9c2fc57fa671c49e49a74..f1460ddd1486ecb205d577edb87b24399e93a502 100644 (file)
@@ -906,17 +906,14 @@ bool __is_local_mountpoint(const struct dentry *dentry)
 {
        struct mnt_namespace *ns = current->nsproxy->mnt_ns;
        struct mount *mnt, *n;
-       bool is_covered = false;
 
-       down_read(&namespace_sem);
-       rbtree_postorder_for_each_entry_safe(mnt, n, &ns->mounts, mnt_node) {
-               is_covered = (mnt->mnt_mountpoint == dentry);
-               if (is_covered)
-                       break;
-       }
-       up_read(&namespace_sem);
+       guard(namespace_shared)();
+
+       rbtree_postorder_for_each_entry_safe(mnt, n, &ns->mounts, mnt_node)
+               if (mnt->mnt_mountpoint == dentry)
+                       return true;
 
-       return is_covered;
+       return false;
 }
 
 struct pinned_mountpoint {