[Devel] [RFC][PATCH] Use task_pgrp()/task_session() in copy_process
Sukadev Bhattiprolu
sukadev at us.ibm.com
Thu Jan 11 07:58:16 PST 2007
I am trying to replace process_group() and process_session() calls in
copy_process() with task_pgrp() and task_session().
Since task_pid() task_pgrp(), task_session() for the swapper are NULL, I
had to treat swapper as special in this patch and would like some comments.
Should we instead do some magic in start_kernel() so we don't have to treat
swapper special or maybe move the check for pid_t == 0 into task_pgrp()/
task_session() ?
P.S: For find_attach_pid()/attach_pid(), pls see my recent patches to Containers@
and LKML.
---
From: Sukadev Bhattiprolu <sukadev at us.ibm.com>
Replace process_group() and process_session() with container-friendly task_pgrp() and
task_session().
Signed-off-by: Sukadev Bhattiprolu <sukadev at us.ibm.com>
Cc: Cedric Le Goater <clg at fr.ibm.com>
Cc: Dave Hansen <haveblue at us.ibm.com>
Cc: Serge Hallyn <serue at us.ibm.com>
Cc: containers at lists.osdl.org
---
kernel/fork.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
Index: lx26-20-rc2-mm1/kernel/fork.c
===================================================================
--- lx26-20-rc2-mm1.orig/kernel/fork.c 2007-01-11 07:18:03.383853328 -0800
+++ lx26-20-rc2-mm1/kernel/fork.c 2007-01-11 07:19:55.550801360 -0800
@@ -1248,8 +1248,13 @@ static struct task_struct *copy_process(
p->signal->tty = current->signal->tty;
p->signal->pgrp = process_group(current);
set_signal_session(p->signal, process_session(current));
- find_attach_pid(p, PIDTYPE_PGID, process_group(p));
- find_attach_pid(p, PIDTYPE_SID, process_session(p));
+ if (current->pid) {
+ attach_pid(p, PIDTYPE_PGID, task_pgrp(current));
+ attach_pid(p, PIDTYPE_SID, task_session(current));
+ } else {
+ find_attach_pid(p, PIDTYPE_PGID, process_group(current));
+ find_attach_pid(p, PIDTYPE_SID, process_session(current));
+ }
list_add_tail_rcu(&p->tasks, &init_task.tasks);
__get_cpu_var(process_counts)++;
_______________________________________________
Containers mailing list
Containers at lists.osdl.org
https://lists.osdl.org/mailman/listinfo/containers
More information about the Devel
mailing list