diff options
Diffstat (limited to 'kernel/fork.c')
| -rw-r--r-- | kernel/fork.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index 451cfd35bf22..1b0f7b1e0881 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
| @@ -44,6 +44,7 @@ | |||
| 44 | #include <linux/acct.h> | 44 | #include <linux/acct.h> |
| 45 | #include <linux/cn_proc.h> | 45 | #include <linux/cn_proc.h> |
| 46 | #include <linux/delayacct.h> | 46 | #include <linux/delayacct.h> |
| 47 | #include <linux/taskstats_kern.h> | ||
| 47 | 48 | ||
| 48 | #include <asm/pgtable.h> | 49 | #include <asm/pgtable.h> |
| 49 | #include <asm/pgalloc.h> | 50 | #include <asm/pgalloc.h> |
| @@ -819,6 +820,7 @@ static inline int copy_signal(unsigned long clone_flags, struct task_struct * ts | |||
| 819 | if (clone_flags & CLONE_THREAD) { | 820 | if (clone_flags & CLONE_THREAD) { |
| 820 | atomic_inc(¤t->signal->count); | 821 | atomic_inc(¤t->signal->count); |
| 821 | atomic_inc(¤t->signal->live); | 822 | atomic_inc(¤t->signal->live); |
| 823 | taskstats_tgid_alloc(current->signal); | ||
| 822 | return 0; | 824 | return 0; |
| 823 | } | 825 | } |
| 824 | sig = kmem_cache_alloc(signal_cachep, GFP_KERNEL); | 826 | sig = kmem_cache_alloc(signal_cachep, GFP_KERNEL); |
| @@ -863,6 +865,7 @@ static inline int copy_signal(unsigned long clone_flags, struct task_struct * ts | |||
| 863 | INIT_LIST_HEAD(&sig->cpu_timers[0]); | 865 | INIT_LIST_HEAD(&sig->cpu_timers[0]); |
| 864 | INIT_LIST_HEAD(&sig->cpu_timers[1]); | 866 | INIT_LIST_HEAD(&sig->cpu_timers[1]); |
| 865 | INIT_LIST_HEAD(&sig->cpu_timers[2]); | 867 | INIT_LIST_HEAD(&sig->cpu_timers[2]); |
| 868 | taskstats_tgid_init(sig); | ||
| 866 | 869 | ||
| 867 | task_lock(current->group_leader); | 870 | task_lock(current->group_leader); |
| 868 | memcpy(sig->rlim, current->signal->rlim, sizeof sig->rlim); | 871 | memcpy(sig->rlim, current->signal->rlim, sizeof sig->rlim); |
| @@ -884,6 +887,7 @@ static inline int copy_signal(unsigned long clone_flags, struct task_struct * ts | |||
| 884 | void __cleanup_signal(struct signal_struct *sig) | 887 | void __cleanup_signal(struct signal_struct *sig) |
| 885 | { | 888 | { |
| 886 | exit_thread_group_keys(sig); | 889 | exit_thread_group_keys(sig); |
| 890 | taskstats_tgid_free(sig); | ||
| 887 | kmem_cache_free(signal_cachep, sig); | 891 | kmem_cache_free(signal_cachep, sig); |
| 888 | } | 892 | } |
| 889 | 893 | ||
