[PATCH] do __unhash_process() under ->siglock
[linux-2.6.git] / kernel / exit.c
index 6b2e4cf..44d6c6e 100644 (file)
@@ -112,6 +112,8 @@ static void __exit_signal(struct task_struct *tsk)
                sig = NULL; /* Marker for below. */
        }
 
+       __unhash_process(tsk);
+
        tsk->signal = NULL;
        cleanup_sighand(tsk);
        spin_unlock(&sighand->siglock);
@@ -140,8 +142,6 @@ repeat:
        BUG_ON(!list_empty(&p->ptrace_list) || !list_empty(&p->ptrace_children));
        __exit_signal(p);
 
-       __unhash_process(p);
-
        /*
         * If we are the last non-leader member of the thread
         * group, and the leader is zombie, then notify the