From 241ceee0b442c69226fb882d61d9b9785743898f Mon Sep 17 00:00:00 2001 From: Oleg Nesterov Date: Sun, 24 Dec 2006 23:30:44 +0300 Subject: [PATCH] [PATCH] restore ->pdeath_signal behaviour Commit b2b2cbc4b2a2f389442549399a993a8306420baf introduced a user- visible change: ->pdeath_signal is sent only when the entire thread group exits. While this change is imho good, it may break things. So restore the old behaviour for now. Signed-off-by: Oleg Nesterov To: Albert Cahalan Cc: Eric W. Biederman Cc: Andrew Morton Cc: Linus Torvalds Cc: Ingo Molnar Cc: Qi Yong Cc: Roland McGrath Signed-off-by: Linus Torvalds --- kernel/exit.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/kernel/exit.c b/kernel/exit.c index 46cf6b68146..35401720635 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -597,6 +597,10 @@ choose_new_parent(struct task_struct *p, struct task_struct *reaper) static void reparent_thread(struct task_struct *p, struct task_struct *father, int traced) { + if (p->pdeath_signal) + /* We already hold the tasklist_lock here. */ + group_send_sig_info(p->pdeath_signal, SEND_SIG_NOINFO, p); + /* Move the child from its dying parent to the new one. */ if (unlikely(traced)) { /* Preserve ptrace links if someone else is tracing this child. */ @@ -631,10 +635,6 @@ reparent_thread(struct task_struct *p, struct task_struct *father, int traced) /* We don't want people slaying init. */ if (p->exit_signal != -1) p->exit_signal = SIGCHLD; - - if (p->pdeath_signal) - /* We already hold the tasklist_lock here. */ - group_send_sig_info(p->pdeath_signal, SEND_SIG_NOINFO, p); /* If we'd notified the old parent about this child's death, * also notify the new parent.