summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/linux/init_task.h1
-rw-r--r--include/linux/nsproxy.h1
-rw-r--r--kernel/nsproxy.c4
3 files changed, 5 insertions, 1 deletions
diff --git a/include/linux/init_task.h b/include/linux/init_task.h
index 5c4989172f7e..90c5f9a07730 100644
--- a/include/linux/init_task.h
+++ b/include/linux/init_task.h
@@ -75,6 +75,7 @@ extern struct nsproxy init_nsproxy;
#define INIT_NSPROXY(nsproxy) { \
.count = ATOMIC_INIT(1), \
.nslock = __SPIN_LOCK_UNLOCKED(nsproxy.nslock), \
+ .id = 0, \
.uts_ns = &init_uts_ns, \
.mnt_ns = NULL, \
INIT_IPC_NS(ipc_ns) \
diff --git a/include/linux/nsproxy.h b/include/linux/nsproxy.h
index 0aba1b1a39c7..27f37c1ec1d9 100644
--- a/include/linux/nsproxy.h
+++ b/include/linux/nsproxy.h
@@ -23,6 +23,7 @@ struct ipc_namespace;
struct nsproxy {
atomic_t count;
spinlock_t nslock;
+ unsigned long id;
struct uts_namespace *uts_ns;
struct ipc_namespace *ipc_ns;
struct mnt_namespace *mnt_ns;
diff --git a/kernel/nsproxy.c b/kernel/nsproxy.c
index bd9cb435dfe0..f223c15c18e9 100644
--- a/kernel/nsproxy.c
+++ b/kernel/nsproxy.c
@@ -45,8 +45,10 @@ static inline struct nsproxy *clone_namespaces(struct nsproxy *orig)
struct nsproxy *ns;
ns = kmemdup(orig, sizeof(struct nsproxy), GFP_KERNEL);
- if (ns)
+ if (ns) {
atomic_set(&ns->count, 1);
+ ns->id = -1;
+ }
return ns;
}