Skip to content

Commit

Permalink
pid namespaces: add support for pid namespaces hierarchy
Browse files Browse the repository at this point in the history
Each namespace has a parent and is characterized by its "level".  Level is the
number of the namespace generation.  E.g.  init namespace has level 0, after
cloning new one it will have level 1, the next one - 2 and so on and so forth.
 This level is not explicitly limited.

True hierarchy must have some way to find each namespace's children, but it is
not used in the patches, so this ability is not added (yet).

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Cc: Oleg Nesterov <oleg@tv-sign.ru>
Cc: Sukadev Bhattiprolu <sukadev@us.ibm.com>
Cc: Paul Menage <menage@google.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
xemul authored and Linus Torvalds committed Oct 19, 2007
1 parent 4c3f2ea commit faacbfd
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 1 deletion.
2 changes: 2 additions & 0 deletions include/linux/pid_namespace.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ struct pid_namespace {
int last_pid;
struct task_struct *child_reaper;
struct kmem_cache *pid_cachep;
int level;
struct pid_namespace *parent;
};

extern struct pid_namespace init_pid_ns;
Expand Down
3 changes: 2 additions & 1 deletion kernel/pid.c
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,8 @@ struct pid_namespace init_pid_ns = {
[ 0 ... PIDMAP_ENTRIES-1] = { ATOMIC_INIT(BITS_PER_PAGE), NULL }
},
.last_pid = 0,
.child_reaper = &init_task
.level = 0,
.child_reaper = &init_task,
};

int is_global_init(struct task_struct *tsk)
Expand Down

0 comments on commit faacbfd

Please sign in to comment.