aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/utsname.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/utsname.c')
-rw-r--r--kernel/utsname.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/utsname.c b/kernel/utsname.c
index b1ac3ca870f24e..f6f707e5c5333f 100644
--- a/kernel/utsname.c
+++ b/kernel/utsname.c
@@ -12,6 +12,7 @@
#include <linux/slab.h>
#include <linux/cred.h>
#include <linux/user_namespace.h>
+#include <linux/namespacefs.h>
#include <linux/proc_ns.h>
#include <linux/sched/task.h>
@@ -70,6 +71,11 @@ static struct uts_namespace *clone_uts_ns(struct user_namespace *user_ns,
memcpy(&ns->name, &old_ns->name, sizeof(ns->name));
ns->user_ns = get_user_ns(user_ns);
up_read(&uts_sem);
+
+ err = namespacefs_create_uts_ns_dir(ns);
+ if (err)
+ goto fail_free;
+
return ns;
fail_free:
@@ -105,6 +111,8 @@ struct uts_namespace *copy_utsname(unsigned long flags,
void free_uts_ns(struct uts_namespace *ns)
{
+ namespacefs_remove_uts_ns_dir(ns);
+
dec_uts_namespaces(ns->ucounts);
put_user_ns(ns->user_ns);
ns_free_inum(&ns->ns);