diff options
Diffstat (limited to 'fs/signalfd.c')
-rw-r--r-- | fs/signalfd.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/fs/signalfd.c b/fs/signalfd.c index 492465b451dd..79c1eea98a3a 100644 --- a/fs/signalfd.c +++ b/fs/signalfd.c | |||
@@ -30,6 +30,17 @@ | |||
30 | #include <linux/signalfd.h> | 30 | #include <linux/signalfd.h> |
31 | #include <linux/syscalls.h> | 31 | #include <linux/syscalls.h> |
32 | 32 | ||
33 | void signalfd_cleanup(struct sighand_struct *sighand) | ||
34 | { | ||
35 | wait_queue_head_t *wqh = &sighand->signalfd_wqh; | ||
36 | |||
37 | if (likely(!waitqueue_active(wqh))) | ||
38 | return; | ||
39 | |||
40 | /* wait_queue_t->func(POLLFREE) should do remove_wait_queue() */ | ||
41 | wake_up_poll(wqh, POLLHUP | POLLFREE); | ||
42 | } | ||
43 | |||
33 | struct signalfd_ctx { | 44 | struct signalfd_ctx { |
34 | sigset_t sigmask; | 45 | sigset_t sigmask; |
35 | }; | 46 | }; |