The main problem is that copy_process's error path and
release_task() share __exit_signal() which locks ->sighand
and destroys it, but we need to do __unhash_process() under
->sighand.
This patch series tries to solves this. It also tries to
simplify and cleanup the code a bit.
Oleg.