[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>
This commit is contained in:
parent
6b3286ed11
commit
373beb35cd
|
@ -75,6 +75,7 @@ extern struct nsproxy init_nsproxy;
|
||||||
#define INIT_NSPROXY(nsproxy) { \
|
#define INIT_NSPROXY(nsproxy) { \
|
||||||
.count = ATOMIC_INIT(1), \
|
.count = ATOMIC_INIT(1), \
|
||||||
.nslock = __SPIN_LOCK_UNLOCKED(nsproxy.nslock), \
|
.nslock = __SPIN_LOCK_UNLOCKED(nsproxy.nslock), \
|
||||||
|
.id = 0, \
|
||||||
.uts_ns = &init_uts_ns, \
|
.uts_ns = &init_uts_ns, \
|
||||||
.mnt_ns = NULL, \
|
.mnt_ns = NULL, \
|
||||||
INIT_IPC_NS(ipc_ns) \
|
INIT_IPC_NS(ipc_ns) \
|
||||||
|
|
|
@ -23,6 +23,7 @@ struct ipc_namespace;
|
||||||
struct nsproxy {
|
struct nsproxy {
|
||||||
atomic_t count;
|
atomic_t count;
|
||||||
spinlock_t nslock;
|
spinlock_t nslock;
|
||||||
|
unsigned long id;
|
||||||
struct uts_namespace *uts_ns;
|
struct uts_namespace *uts_ns;
|
||||||
struct ipc_namespace *ipc_ns;
|
struct ipc_namespace *ipc_ns;
|
||||||
struct mnt_namespace *mnt_ns;
|
struct mnt_namespace *mnt_ns;
|
||||||
|
|
|
@ -45,8 +45,10 @@ static inline struct nsproxy *clone_namespaces(struct nsproxy *orig)
|
||||||
struct nsproxy *ns;
|
struct nsproxy *ns;
|
||||||
|
|
||||||
ns = kmemdup(orig, sizeof(struct nsproxy), GFP_KERNEL);
|
ns = kmemdup(orig, sizeof(struct nsproxy), GFP_KERNEL);
|
||||||
if (ns)
|
if (ns) {
|
||||||
atomic_set(&ns->count, 1);
|
atomic_set(&ns->count, 1);
|
||||||
|
ns->id = -1;
|
||||||
|
}
|
||||||
return ns;
|
return ns;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue