Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3ae4cbadf4bf97ee137b921a1b928d2a5dcd26ca Commit: 3ae4cbadf4bf97ee137b921a1b928d2a5dcd26ca Parent: 2f4e6e2a814eb1305a873a045401708d73f870bc Author: Oleg Nesterov <[EMAIL PROTECTED]> AuthorDate: Tue Oct 16 23:26:58 2007 -0700 Committer: Linus Torvalds <[EMAIL PROTECTED]> CommitDate: Wed Oct 17 08:42:51 2007 -0700
exit_notify: don't take tasklist for TIF_SIGPENDING re-targeting ->siglock provides enough protection to iterate over the thread group. Signed-off-by: Oleg Nesterov <[EMAIL PROTECTED]> Acked-by: Roland McGrath <[EMAIL PROTECTED]> Signed-off-by: Andrew Morton <[EMAIL PROTECTED]> Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]> --- kernel/exit.c | 5 +---- 1 files changed, 1 insertions(+), 4 deletions(-) diff --git a/kernel/exit.c b/kernel/exit.c index b4d5696..28144b9 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -747,13 +747,11 @@ static void exit_notify(struct task_struct *tsk) * Now we'll wake all the threads in the group just to make * sure someone gets all the pending signals. */ - read_lock(&tasklist_lock); spin_lock_irq(&tsk->sighand->siglock); for (t = next_thread(tsk); t != tsk; t = next_thread(t)) if (!signal_pending(t) && !(t->flags & PF_EXITING)) recalc_sigpending_and_wake(t); spin_unlock_irq(&tsk->sighand->siglock); - read_unlock(&tasklist_lock); } write_lock_irq(&tasklist_lock); @@ -781,9 +779,8 @@ static void exit_notify(struct task_struct *tsk) * and we were the only connection outside, so our pgrp * is about to become orphaned. */ - t = tsk->real_parent; - + pgrp = task_pgrp(tsk); if ((task_pgrp(t) != pgrp) && (task_session(t) == task_session(tsk)) && - To unsubscribe from this list: send the line "unsubscribe git-commits-head" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html