diff options
Diffstat (limited to 'kernel/fork.c')
| -rw-r--r-- | kernel/fork.c | 15 | 
1 files changed, 7 insertions, 8 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index 7b8f2a78be3..7087d8c0e5e 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -820,14 +820,15 @@ static int copy_signal(unsigned long clone_flags, struct task_struct *tsk)  	int ret;  	if (clone_flags & CLONE_THREAD) { -		ret = thread_group_cputime_clone_thread(current); -		if (likely(!ret)) { -			atomic_inc(¤t->signal->count); -			atomic_inc(¤t->signal->live); -		} -		return ret; +		atomic_inc(¤t->signal->count); +		atomic_inc(¤t->signal->live); +		return 0;  	}  	sig = kmem_cache_alloc(signal_cachep, GFP_KERNEL); + +	if (sig) +		posix_cpu_timers_init_group(sig); +  	tsk->signal = sig;  	if (!sig)  		return -ENOMEM; @@ -864,8 +865,6 @@ static int copy_signal(unsigned long clone_flags, struct task_struct *tsk)  	memcpy(sig->rlim, current->signal->rlim, sizeof sig->rlim);  	task_unlock(current->group_leader); -	posix_cpu_timers_init_group(sig); -  	acct_init_pacct(&sig->pacct);  	tty_audit_fork(sig);  |