[PATCH] fix de_thread() vs do_coredump() deadlock
authorOleg Nesterov <oleg@tv-sign.ru>
Sun, 30 Oct 2005 23:02:54 +0000 (15:02 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 31 Oct 2005 01:37:25 +0000 (17:37 -0800)
commit1291cf4163d21f1b4999d697cbf68d38e7151c28
tree0e1c3e3970216c769f91f6077b0e23d47d6fd333
parentf7232056bff5fe2d3bfeab35252a66ebaeb5bbde
[PATCH] fix de_thread() vs do_coredump() deadlock

de_thread() sends SIGKILL to all sub-threads and waits them to die in 'D'
state.  It is possible that one of the threads already dequeued coredump
signal.  When de_thread() unlocks ->sighand->lock that thread can enter
do_coredump()->coredump_wait() and cause a deadlock.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: Roland McGrath <roland@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fs/exec.c