call_usermodehelper: no need to unblock signals
____call_usermodehelper() correctly calls flush_signal_handlers() to set SIG_DFL, but sigemptyset(->blocked) and recalc_sigpending() are not needed. This kthread was forked by workqueue thread, all signals must be unblocked and ignored, no pending signal is possible. Signed-off-by: Oleg Nesterov <oleg@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
c70a626d3e
commit
363da4022c
@@ -134,11 +134,8 @@ static int ____call_usermodehelper(void *data)
|
|||||||
struct subprocess_info *sub_info = data;
|
struct subprocess_info *sub_info = data;
|
||||||
int retval;
|
int retval;
|
||||||
|
|
||||||
/* Unblock all signals */
|
|
||||||
spin_lock_irq(¤t->sighand->siglock);
|
spin_lock_irq(¤t->sighand->siglock);
|
||||||
flush_signal_handlers(current, 1);
|
flush_signal_handlers(current, 1);
|
||||||
sigemptyset(¤t->blocked);
|
|
||||||
recalc_sigpending();
|
|
||||||
spin_unlock_irq(¤t->sighand->siglock);
|
spin_unlock_irq(¤t->sighand->siglock);
|
||||||
|
|
||||||
/* We can run anywhere, unlike our parent keventd(). */
|
/* We can run anywhere, unlike our parent keventd(). */
|
||||||
|
Reference in New Issue
Block a user