__is_local_mountpoint(): use guards

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>
This commit is contained in:
Al Viro
2025-08-20 20:14:22 -04:00
parent 902e990467
commit 4151c3cc58

View 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)();
return is_covered;
rbtree_postorder_for_each_entry_safe(mnt, n, &ns->mounts, mnt_node)
if (mnt->mnt_mountpoint == dentry)
return true;
return false;
}
struct pinned_mountpoint {