aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCedric Le Goater <clg@fr.ibm.com>2006-12-08 05:37:57 -0500
committerLinus Torvalds <torvalds@woody.osdl.org>2006-12-08 11:28:52 -0500
commit373beb35cd6b625e0ba4ad98baace12310a26aa8 (patch)
tree0cb0a8601a8141bff0ff63a2a6da982f5d023b61
parent6b3286ed1169d74fea401367d6d4d6c6ec758a81 (diff)
[PATCH] identifier to nsproxy
Add an identifier to nsproxy. The default init_ns_proxy has identifier 0 and allocated nsproxies are given -1. This identifier will be used by a new syscall sys_bind_ns. Signed-off-by: Cedric Le Goater <clg@fr.ibm.com> Cc: Kirill Korotaev <dev@openvz.org> Cc: Eric W. Biederman <ebiederm@xmission.com> Cc: Herbert Poetzl <herbert@13thfloor.at> Cc: Sukadev Bhattiprolu <sukadev@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-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;
75#define INIT_NSPROXY(nsproxy) { \ 75#define INIT_NSPROXY(nsproxy) { \
76 .count = ATOMIC_INIT(1), \ 76 .count = ATOMIC_INIT(1), \
77 .nslock = __SPIN_LOCK_UNLOCKED(nsproxy.nslock), \ 77 .nslock = __SPIN_LOCK_UNLOCKED(nsproxy.nslock), \
78 .id = 0, \
78 .uts_ns = &init_uts_ns, \ 79 .uts_ns = &init_uts_ns, \
79 .mnt_ns = NULL, \ 80 .mnt_ns = NULL, \
80 INIT_IPC_NS(ipc_ns) \ 81 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;
23struct nsproxy { 23struct nsproxy {
24 atomic_t count; 24 atomic_t count;
25 spinlock_t nslock; 25 spinlock_t nslock;
26 unsigned long id;
26 struct uts_namespace *uts_ns; 27 struct uts_namespace *uts_ns;
27 struct ipc_namespace *ipc_ns; 28 struct ipc_namespace *ipc_ns;
28 struct mnt_namespace *mnt_ns; 29 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)
45 struct nsproxy *ns; 45 struct nsproxy *ns;
46 46
47 ns = kmemdup(orig, sizeof(struct nsproxy), GFP_KERNEL); 47 ns = kmemdup(orig, sizeof(struct nsproxy), GFP_KERNEL);
48 if (ns) 48 if (ns) {
49 atomic_set(&ns->count, 1); 49 atomic_set(&ns->count, 1);
50 ns->id = -1;
51 }
50 return ns; 52 return ns;
51} 53}
52 54