diff options
Diffstat (limited to 'kernel/exit.c')
-rw-r--r-- | kernel/exit.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/kernel/exit.c b/kernel/exit.c index eb4d6470d1d0..38ec40630149 100644 --- a/kernel/exit.c +++ b/kernel/exit.c | |||
@@ -911,10 +911,10 @@ static void exit_notify(struct task_struct *tsk, int group_dead) | |||
911 | tsk->exit_signal = SIGCHLD; | 911 | tsk->exit_signal = SIGCHLD; |
912 | 912 | ||
913 | signal = tracehook_notify_death(tsk, &cookie, group_dead); | 913 | signal = tracehook_notify_death(tsk, &cookie, group_dead); |
914 | if (signal > 0) | 914 | if (signal >= 0) |
915 | signal = do_notify_parent(tsk, signal); | 915 | signal = do_notify_parent(tsk, signal); |
916 | 916 | ||
917 | tsk->exit_state = signal < 0 ? EXIT_DEAD : EXIT_ZOMBIE; | 917 | tsk->exit_state = signal == DEATH_REAP ? EXIT_DEAD : EXIT_ZOMBIE; |
918 | 918 | ||
919 | /* mt-exec, de_thread() is waiting for us */ | 919 | /* mt-exec, de_thread() is waiting for us */ |
920 | if (thread_group_leader(tsk) && | 920 | if (thread_group_leader(tsk) && |
@@ -927,7 +927,7 @@ static void exit_notify(struct task_struct *tsk, int group_dead) | |||
927 | tracehook_report_death(tsk, signal, cookie, group_dead); | 927 | tracehook_report_death(tsk, signal, cookie, group_dead); |
928 | 928 | ||
929 | /* If the process is dead, release it - nobody will wait for it */ | 929 | /* If the process is dead, release it - nobody will wait for it */ |
930 | if (signal < 0) | 930 | if (signal == DEATH_REAP) |
931 | release_task(tsk); | 931 | release_task(tsk); |
932 | } | 932 | } |
933 | 933 | ||