summaryrefslogtreecommitdiff
path: root/scripts/Makefile.thinlto
diff options
context:
space:
mode:
authorChristian Brauner <brauner@kernel.org>2026-07-26 18:13:46 +0200
committerPaul Moore <paul@paul-moore.com>2026-08-31 16:14:10 -0400
commit4f238e6e1c2cc985ca6885549e05de8fc37ad4fe (patch)
treef7f4b521fc9eef97659670cf45d075e523d09b82 /scripts/Makefile.thinlto
parentb030ffaedc1d638f232f6992406cdcdcc82d5602 (diff)
downloadlinux-next-4f238e6e1c2cc985ca6885549e05de8fc37ad4fe.tar.gz
linux-next-4f238e6e1c2cc985ca6885549e05de8fc37ad4fe.zip
ns: Free anonymous mount namespaces via ns_common_free()
free_mnt_ns() skipped ns_common_free() for anonymous mount namespaces (the "if (!is_anon_ns(ns))" guard) because they carry the reserved inum MNT_NS_ANON_INO, which proc_free_inum() must never release. A following change needs ns_common_free() to run for every namespace, to release per-namespace state attached during __ns_common_init(). Move the reserved-inum decision into __ns_common_free() and let free_mnt_ns() call ns_common_free() unconditionally. __ns_common_free() is shared by all namespace types, so it gates proc_free_inum() on ns->inum > MNT_NS_INO_SPECIAL_MAX (a new alias for MNT_NS_ANON_INO) rather than the mount-specific is_anon_ns(). The reserved inums (MNT_NS_ANON_INO and the *_NS_INIT_INO values just above it) belong to namespaces that are never freed, except the anonymous mount namespace; dynamically allocated inums are >= PROC_DYNAMIC_FIRST. So the comparison frees every dynamic inum and skips exactly the anonymous mount namespace, matching the previous guard. Cc: Günther Noack <gnoack@google.com> Cc: Paul Moore <paul@paul-moore.com> Signed-off-by: Christian Brauner <brauner@kernel.org> Co-developed-by: Mickaël Salaün <mic@digikod.net> Signed-off-by: Mickaël Salaün <mic@digikod.net> Reviewed-by: Christian Brauner (Amutable) <brauner@kernel.org> Signed-off-by: Paul Moore <paul@paul-moore.com>
Diffstat (limited to 'scripts/Makefile.thinlto')
0 files changed, 0 insertions, 0 deletions