Commit 53c30337 authored by Oleg Nesterov's avatar Oleg Nesterov Committed by Linus Torvalds

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: default avatarOleg Nesterov <oleg@tv-sign.ru>
Acked-by: default avatarDavide Libenzi <davidel@xmailserver.org>
Cc: Roland McGrath <roland@redhat.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 021e1ae3
...@@ -772,13 +772,6 @@ static int send_signal(int sig, struct siginfo *info, struct task_struct *t, ...@@ -772,13 +772,6 @@ static int send_signal(int sig, struct siginfo *info, struct task_struct *t,
*/ */
if (legacy_queue(pending, sig)) if (legacy_queue(pending, sig))
return 0; 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 * fast-pathed signals for kernel-internal things like SIGSTOP
* or SIGKILL. * or SIGKILL.
...@@ -828,6 +821,7 @@ static int send_signal(int sig, struct siginfo *info, struct task_struct *t, ...@@ -828,6 +821,7 @@ static int send_signal(int sig, struct siginfo *info, struct task_struct *t,
} }
out_set: out_set:
signalfd_notify(t, sig);
sigaddset(&pending->signal, sig); sigaddset(&pending->signal, sig);
complete_signal(sig, t, group); complete_signal(sig, t, group);
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment