summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Brauner <brauner@kernel.org>2025-09-17 13:28:05 +0300
committerChristian Brauner <brauner@kernel.org>2025-09-19 15:26:18 +0300
commit86cdbae5c61c6b8c0a2adc78dbbb0314b3254a9c (patch)
tree5f13878481488bd19369393fcd2814f9ea0d3609
parentcc47f434271ba90c18c16e0bba360df38a8bc954 (diff)
downloadlinux-86cdbae5c61c6b8c0a2adc78dbbb0314b3254a9c.tar.xz
mnt: simplify ns_common_init() handling
Assign the reserved MNT_NS_ANON_INO sentinel to anonymous mount namespaces and cleanup the initial mount ns allocation. This is just a preparatory patch and the ns->inum check in ns_common_init() will be dropped in the next patch. Reviewed-by: Jan Kara <jack@suse.cz> Signed-off-by: Christian Brauner <brauner@kernel.org>
-rw-r--r--fs/namespace.c2
-rw-r--r--kernel/nscommon.c2
2 files changed, 3 insertions, 1 deletions
diff --git a/fs/namespace.c b/fs/namespace.c
index f0bddc9cf2a6..b2fcb901ad8c 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -4103,6 +4103,8 @@ static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns, bool a
return ERR_PTR(-ENOMEM);
}
+ if (anon)
+ new_ns->ns.inum = MNT_NS_ANON_INO;
ret = ns_common_init(&new_ns->ns, &mntns_operations, !anon);
if (ret) {
kfree(new_ns);
diff --git a/kernel/nscommon.c b/kernel/nscommon.c
index ebf4783d0505..e10fad8afe61 100644
--- a/kernel/nscommon.c
+++ b/kernel/nscommon.c
@@ -5,7 +5,7 @@
int ns_common_init(struct ns_common *ns, const struct proc_ns_operations *ops,
bool alloc_inum)
{
- if (alloc_inum) {
+ if (alloc_inum && !ns->inum) {
int ret;
ret = proc_alloc_inum(&ns->inum);
if (ret)