summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorPatrick Mochel <mochel@osdl.org>2003-08-13 19:36:17 -0700
committerPatrick Mochel <mochel@osdl.org>2003-08-13 19:36:17 -0700
commit9bf76164abf0705fc03ffff552613f6da3b7af35 (patch)
tree87333531c8e5265201e1710f6923caaf8d8a94ab /kernel
parentf2df1a5f499f8d559f66900b0e3b3fbf52f88d49 (diff)
parent3b822c88f30d825810b4134bd6d5a156628c6c03 (diff)
Merge osdl.org:/home/mochel/src/kernel/linux-2.5-virgin
into osdl.org:/home/mochel/src/kernel/linux-2.5-power
Diffstat (limited to 'kernel')
-rw-r--r--kernel/signal.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/signal.c b/kernel/signal.c
index bab76d941a3d..cd83653ef5d2 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -1011,9 +1011,11 @@ void zap_other_threads(struct task_struct *p)
* killed as part of a thread group due to another
* thread doing an execve() or similar. So set the
* exit signal to -1 to allow immediate reaping of
- * the process.
+ * the process. But don't detach the thread group
+ * leader.
*/
- t->exit_signal = -1;
+ if (t != p->group_leader)
+ t->exit_signal = -1;
sigaddset(&t->pending.signal, SIGKILL);
rm_from_queue(SIG_KERNEL_STOP_MASK, &t->pending);