diff options
Diffstat (limited to 'kernel/exit.c')
-rw-r--r-- | kernel/exit.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/kernel/exit.c b/kernel/exit.c index bbc22530f2c1..c0711da15486 100644 --- a/kernel/exit.c +++ b/kernel/exit.c | |||
@@ -47,12 +47,14 @@ | |||
47 | #include <linux/blkdev.h> | 47 | #include <linux/blkdev.h> |
48 | #include <linux/task_io_accounting_ops.h> | 48 | #include <linux/task_io_accounting_ops.h> |
49 | #include <linux/tracehook.h> | 49 | #include <linux/tracehook.h> |
50 | #include <linux/init_task.h> | ||
50 | #include <trace/sched.h> | 51 | #include <trace/sched.h> |
51 | 52 | ||
52 | #include <asm/uaccess.h> | 53 | #include <asm/uaccess.h> |
53 | #include <asm/unistd.h> | 54 | #include <asm/unistd.h> |
54 | #include <asm/pgtable.h> | 55 | #include <asm/pgtable.h> |
55 | #include <asm/mmu_context.h> | 56 | #include <asm/mmu_context.h> |
57 | #include "cred-internals.h" | ||
56 | 58 | ||
57 | static void exit_mm(struct task_struct * tsk); | 59 | static void exit_mm(struct task_struct * tsk); |
58 | 60 | ||
@@ -338,12 +340,12 @@ static void reparent_to_kthreadd(void) | |||
338 | /* cpus_allowed? */ | 340 | /* cpus_allowed? */ |
339 | /* rt_priority? */ | 341 | /* rt_priority? */ |
340 | /* signals? */ | 342 | /* signals? */ |
341 | security_task_reparent_to_init(current); | ||
342 | memcpy(current->signal->rlim, init_task.signal->rlim, | 343 | memcpy(current->signal->rlim, init_task.signal->rlim, |
343 | sizeof(current->signal->rlim)); | 344 | sizeof(current->signal->rlim)); |
344 | atomic_inc(&(INIT_USER->__count)); | 345 | |
346 | atomic_inc(&init_cred.usage); | ||
347 | commit_creds(&init_cred); | ||
345 | write_unlock_irq(&tasklist_lock); | 348 | write_unlock_irq(&tasklist_lock); |
346 | switch_uid(INIT_USER); | ||
347 | } | 349 | } |
348 | 350 | ||
349 | void __set_special_pids(struct pid *pid) | 351 | void __set_special_pids(struct pid *pid) |
@@ -1085,7 +1087,6 @@ NORET_TYPE void do_exit(long code) | |||
1085 | check_stack_usage(); | 1087 | check_stack_usage(); |
1086 | exit_thread(); | 1088 | exit_thread(); |
1087 | cgroup_exit(tsk, 1); | 1089 | cgroup_exit(tsk, 1); |
1088 | exit_keys(tsk); | ||
1089 | 1090 | ||
1090 | if (group_dead && tsk->signal->leader) | 1091 | if (group_dead && tsk->signal->leader) |
1091 | disassociate_ctty(1); | 1092 | disassociate_ctty(1); |