signals: send_signal: be paranoid about signalfd_notify()
send_signal() shouldn't call signalfd_notify() if it then fails with -EAGAIN. Harmless, just a paranoid cleanup. Also remove the comment. It is obsolete, signalfd_notify() was simplified and does a simple wakeup. Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru> Acked-by: Davide Libenzi <davidel@xmailserver.org> Cc: Roland McGrath <roland@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:
Родитель
021e1ae3d8
Коммит
53c30337f2
|
@ -772,13 +772,6 @@ static int send_signal(int sig, struct siginfo *info, struct task_struct *t,
|
|||
*/
|
||||
if (legacy_queue(pending, sig))
|
||||
return 0;
|
||||
|
||||
/*
|
||||
* Deliver the signal to listening signalfds. This must be called
|
||||
* with the sighand lock held.
|
||||
*/
|
||||
signalfd_notify(t, sig);
|
||||
|
||||
/*
|
||||
* fast-pathed signals for kernel-internal things like SIGSTOP
|
||||
* or SIGKILL.
|
||||
|
@ -828,6 +821,7 @@ static int send_signal(int sig, struct siginfo *info, struct task_struct *t,
|
|||
}
|
||||
|
||||
out_set:
|
||||
signalfd_notify(t, sig);
|
||||
sigaddset(&pending->signal, sig);
|
||||
complete_signal(sig, t, group);
|
||||
return 0;
|
||||
|
|
Загрузка…
Ссылка в новой задаче