diff options
Diffstat (limited to 'kernel/fork.c')
| -rw-r--r-- | kernel/fork.c | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index 26a7a6707fa7..c4f38a849436 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -1340,7 +1340,13 @@ static struct task_struct *copy_process(unsigned long clone_flags,  	clear_all_latency_tracing(p);  	/* ok, now we should be set up.. */ -	p->exit_signal = (clone_flags & CLONE_THREAD) ? -1 : (clone_flags & CSIGNAL); +	if (clone_flags & CLONE_THREAD) +		p->exit_signal = -1; +	else if (clone_flags & CLONE_PARENT) +		p->exit_signal = current->group_leader->exit_signal; +	else +		p->exit_signal = (clone_flags & CSIGNAL); +  	p->pdeath_signal = 0;  	p->exit_state = 0;  | 
