diff options
author | Cedric Le Goater <clg@fr.ibm.com> | 2006-12-08 05:37:57 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-08 11:28:52 -0500 |
commit | 373beb35cd6b625e0ba4ad98baace12310a26aa8 (patch) | |
tree | 0cb0a8601a8141bff0ff63a2a6da982f5d023b61 | |
parent | 6b3286ed1169d74fea401367d6d4d6c6ec758a81 (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.h | 1 | ||||
-rw-r--r-- | include/linux/nsproxy.h | 1 | ||||
-rw-r--r-- | kernel/nsproxy.c | 4 |
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; | |||
23 | struct nsproxy { | 23 | struct 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 | ||