[PATCH] identifier to nsproxy
authorCedric Le Goater <clg@fr.ibm.com>
Fri, 8 Dec 2006 10:37:57 +0000 (02:37 -0800)
committerLinus Torvalds <torvalds@woody.osdl.org>
Fri, 8 Dec 2006 16:28:52 +0000 (08:28 -0800)
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>
include/linux/init_task.h
include/linux/nsproxy.h
kernel/nsproxy.c

index 5c4989172f7e8974686469bda9028e5b01eb4fa8..90c5f9a07730a835ad37f2e1b1acbc0ffd3ab8eb 100644 (file)
@@ -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)                                             \
index 0aba1b1a39c750bee9a9b528688d17cf2891a87f..27f37c1ec1d978fdf3ad7ae55ec50fbf39d070f8 100644 (file)
@@ -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;
index bd9cb435dfe0f0968a3acb092631daf1c2bf92cc..f223c15c18e962b2ec175fbebb770b5b42ff5bc5 100644 (file)
@@ -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;
 }