signals: change wait_for_helper() to use kernel_sigaction()

Now that we have kernel_sigaction() we can change wait_for_helper() to
use it and cleans up the code a bit.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Al Viro <viro@ZenIV.linux.org.uk>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Richard Weinberger <richard@nod.at>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Oleg Nesterov 2014-06-06 14:37:02 -07:00 committed by Linus Torvalds
parent b4e74264eb
commit 76e0a6f40b

View File

@ -285,10 +285,7 @@ static int wait_for_helper(void *data)
pid_t pid; pid_t pid;
/* If SIGCLD is ignored sys_wait4 won't populate the status. */ /* If SIGCLD is ignored sys_wait4 won't populate the status. */
spin_lock_irq(&current->sighand->siglock); kernel_sigaction(SIGCHLD, SIG_DFL);
current->sighand->action[SIGCHLD-1].sa.sa_handler = SIG_DFL;
spin_unlock_irq(&current->sighand->siglock);
pid = kernel_thread(____call_usermodehelper, sub_info, SIGCHLD); pid = kernel_thread(____call_usermodehelper, sub_info, SIGCHLD);
if (pid < 0) { if (pid < 0) {
sub_info->retval = pid; sub_info->retval = pid;