diff options
Diffstat (limited to 'kernel/exit.c')
-rw-r--r-- | kernel/exit.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/kernel/exit.c b/kernel/exit.c index ee515683b92d..caceabf3f230 100644 --- a/kernel/exit.c +++ b/kernel/exit.c | |||
@@ -72,7 +72,6 @@ repeat: | |||
72 | __ptrace_unlink(p); | 72 | __ptrace_unlink(p); |
73 | BUG_ON(!list_empty(&p->ptrace_list) || !list_empty(&p->ptrace_children)); | 73 | BUG_ON(!list_empty(&p->ptrace_list) || !list_empty(&p->ptrace_children)); |
74 | __exit_signal(p); | 74 | __exit_signal(p); |
75 | __exit_sighand(p); | ||
76 | /* | 75 | /* |
77 | * Note that the fastpath in sys_times depends on __exit_signal having | 76 | * Note that the fastpath in sys_times depends on __exit_signal having |
78 | * updated the counters before a task is removed from the tasklist of | 77 | * updated the counters before a task is removed from the tasklist of |
@@ -258,7 +257,7 @@ static inline void reparent_to_init(void) | |||
258 | 257 | ||
259 | void __set_special_pids(pid_t session, pid_t pgrp) | 258 | void __set_special_pids(pid_t session, pid_t pgrp) |
260 | { | 259 | { |
261 | struct task_struct *curr = current; | 260 | struct task_struct *curr = current->group_leader; |
262 | 261 | ||
263 | if (curr->signal->session != session) { | 262 | if (curr->signal->session != session) { |
264 | detach_pid(curr, PIDTYPE_SID); | 263 | detach_pid(curr, PIDTYPE_SID); |
@@ -926,7 +925,6 @@ do_group_exit(int exit_code) | |||
926 | /* Another thread got here before we took the lock. */ | 925 | /* Another thread got here before we took the lock. */ |
927 | exit_code = sig->group_exit_code; | 926 | exit_code = sig->group_exit_code; |
928 | else { | 927 | else { |
929 | sig->flags = SIGNAL_GROUP_EXIT; | ||
930 | sig->group_exit_code = exit_code; | 928 | sig->group_exit_code = exit_code; |
931 | zap_other_threads(current); | 929 | zap_other_threads(current); |
932 | } | 930 | } |