summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Brauner <brauner@kernel.org>2025-02-21 14:13:01 +0100
committerChristian Brauner <brauner@kernel.org>2025-03-04 09:29:52 +0100
commit2f576220cd8129a303ef4bac4b08e3937c42eff8 (patch)
tree1558f134d87138864e402ad6085a2287a735f5bb
parent3b0cdba4da55188b8ae49430f2730fade56b43ae (diff)
fs: add mnt_ns_empty() helper
Add a helper that checks whether a give mount namespace is empty instead of open-coding the specific data structure check. This also be will be used in follow-up patches. Link: https://lore.kernel.org/r/20250221-brauner-open_tree-v1-2-dbcfcb98c676@kernel.org Signed-off-by: Christian Brauner <brauner@kernel.org>
-rw-r--r--fs/mount.h5
-rw-r--r--fs/namespace.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/fs/mount.h b/fs/mount.h
index 820a79f1f735..e2501a724688 100644
--- a/fs/mount.h
+++ b/fs/mount.h
@@ -157,6 +157,11 @@ static inline bool mnt_ns_attached(const struct mount *mnt)
return !RB_EMPTY_NODE(&mnt->mnt_node);
}
+static inline bool mnt_ns_empty(const struct mnt_namespace *ns)
+{
+ return RB_EMPTY_ROOT(&ns->mounts);
+}
+
static inline void move_from_ns(struct mount *mnt, struct list_head *dt_list)
{
struct mnt_namespace *ns = mnt->mnt_ns;
diff --git a/fs/namespace.c b/fs/namespace.c
index d5c85b6ecb98..8ca28737f4ee 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -5315,7 +5315,7 @@ static int grab_requested_root(struct mnt_namespace *ns, struct path *root)
* We have to find the first mount in our ns and use that, however it
* may not exist, so handle that properly.
*/
- if (RB_EMPTY_ROOT(&ns->mounts))
+ if (mnt_ns_empty(ns))
return -ENOENT;
first = child = ns->root;
@@ -5340,7 +5340,7 @@ static int do_statmount(struct kstatmount *s, u64 mnt_id, u64 mnt_ns_id,
int err;
/* Has the namespace already been emptied? */
- if (mnt_ns_id && RB_EMPTY_ROOT(&ns->mounts))
+ if (mnt_ns_id && mnt_ns_empty(ns))
return -ENOENT;
s->mnt = lookup_mnt_in_ns(mnt_id, ns);