Skip to content

Commit

Permalink
pidns: make create_pid_namespace() accept parent pidns
Browse files Browse the repository at this point in the history
create_pid_namespace() creates everything, but caller has to assign parent
pidns by hand, which is unnatural.  At the moment of call new ->level has
to be taken from somewhere and parent pidns is already available.

Signed-off-by: Alexey Dobriyan <[email protected]>
Cc: Pavel Emelyanov <[email protected]>
Cc: "Eric W. Biederman" <[email protected]>
Acked-by: Serge Hallyn <[email protected]>
Acked-by: Sukadev Bhattiprolu <[email protected]>
Reviewed-by: WANG Cong <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
Alexey Dobriyan authored and torvalds committed Jun 18, 2009
1 parent 17f98dc commit ed469a6
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions kernel/pid_namespace.c
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,10 @@ static struct kmem_cache *create_pid_cachep(int nr_ids)
return NULL;
}

static struct pid_namespace *create_pid_namespace(unsigned int level)
static struct pid_namespace *create_pid_namespace(struct pid_namespace *parent_pid_ns)
{
struct pid_namespace *ns;
unsigned int level = parent_pid_ns->level + 1;
int i;

ns = kmem_cache_zalloc(pid_ns_cachep, GFP_KERNEL);
Expand All @@ -86,6 +87,7 @@ static struct pid_namespace *create_pid_namespace(unsigned int level)

kref_init(&ns->kref);
ns->level = level;
ns->parent = get_pid_ns(parent_pid_ns);

set_bit(0, ns->pidmap[0].page);
atomic_set(&ns->pidmap[0].nr_free, BITS_PER_PAGE - 1);
Expand Down Expand Up @@ -125,9 +127,7 @@ struct pid_namespace *copy_pid_ns(unsigned long flags, struct pid_namespace *old
if (flags & CLONE_THREAD)
goto out_put;

new_ns = create_pid_namespace(old_ns->level + 1);
if (!IS_ERR(new_ns))
new_ns->parent = get_pid_ns(old_ns);
new_ns = create_pid_namespace(old_ns);

out_put:
put_pid_ns(old_ns);
Expand Down

0 comments on commit ed469a6

Please sign in to comment.