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 | ||
