signalfd.c (3eb66e91a25497065c5322b1268cbc3953642227) signalfd.c (0a4c92657f2543bb8fd480c5af90c6bb87f18e00)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * fs/signalfd.c
4 *
5 * Copyright (C) 2003 Linus Torvalds
6 *
7 * Mon Mar 5, 2007: Davide Libenzi <davidel@xmailserver.org>
8 * Changed ->read() to return a siginfo strcture instead of signal number.

--- 162 unchanged lines hidden (view full) ---

171
172 spin_lock_irq(&current->sighand->siglock);
173 ret = dequeue_signal(current, &ctx->sigmask, info);
174 switch (ret) {
175 case 0:
176 if (!nonblock)
177 break;
178 ret = -EAGAIN;
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * fs/signalfd.c
4 *
5 * Copyright (C) 2003 Linus Torvalds
6 *
7 * Mon Mar 5, 2007: Davide Libenzi <davidel@xmailserver.org>
8 * Changed ->read() to return a siginfo strcture instead of signal number.

--- 162 unchanged lines hidden (view full) ---

171
172 spin_lock_irq(&current->sighand->siglock);
173 ret = dequeue_signal(current, &ctx->sigmask, info);
174 switch (ret) {
175 case 0:
176 if (!nonblock)
177 break;
178 ret = -EAGAIN;
179 /* fall through */
179 default:
180 spin_unlock_irq(&current->sighand->siglock);
181 return ret;
182 }
183
184 add_wait_queue(&current->sighand->signalfd_wqh, &wait);
185 for (;;) {
186 set_current_state(TASK_INTERRUPTIBLE);

--- 175 unchanged lines hidden ---
180 default:
181 spin_unlock_irq(&current->sighand->siglock);
182 return ret;
183 }
184
185 add_wait_queue(&current->sighand->signalfd_wqh, &wait);
186 for (;;) {
187 set_current_state(TASK_INTERRUPTIBLE);

--- 175 unchanged lines hidden ---