From 67805f9ec90563f68e9f09b1730acb228cb55abe Mon Sep 17 00:00:00 2001 From: Benjamin Herrenschmidt Date: Tue, 12 Jun 2007 08:16:18 +1000 Subject: [PATCH] --- yaml --- r: 57855 b: refs/heads/master c: caec4e8dc85e0644ec24aeb36285e1ba02da58cc h: refs/heads/master i: 57853: b01e9a5b83d7bec7a787812c6cf5a5d765977829 57851: 4a845bd052eea6ff067a691c986563ceb397c184 57847: dff84d6188bda9d8a2aa36069fb116d0d629da25 57839: 58638fa3b056379acddd68b66c172fd4ea9c3ec1 57823: 3b4a44975d053c0cb9345af662d2500649d8fd07 57791: c88d7bdebc820b7ec8790919169a9e596e9badc2 57727: c06840c3e80ed85b6312d976915160993df844a9 57599: 366f59003a54891bc5bfcac5ae0b52d26f45ccaf 57343: f802f7a104b9d0892ea2759fee445440f015ed2e v: v3 --- [refs] | 2 +- trunk/kernel/signal.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index ad4107aff6e9..0d1a10921060 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bd197234b0a616c8f04f6b682326a5a24b33ca92 +refs/heads/master: caec4e8dc85e0644ec24aeb36285e1ba02da58cc diff --git a/trunk/kernel/signal.c b/trunk/kernel/signal.c index fe590e00db8d..f9405609774e 100644 --- a/trunk/kernel/signal.c +++ b/trunk/kernel/signal.c @@ -363,7 +363,13 @@ static int __dequeue_signal(struct sigpending *pending, sigset_t *mask, */ int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info) { - int signr = __dequeue_signal(&tsk->pending, mask, info); + int signr = 0; + + /* We only dequeue private signals from ourselves, we don't let + * signalfd steal them + */ + if (tsk == current) + signr = __dequeue_signal(&tsk->pending, mask, info); if (!signr) { signr = __dequeue_signal(&tsk->signal->shared_pending, mask, info);