patch-2.1.120 linux/net/sunrpc/sched.c
Next file: linux/net/sunrpc/svcsock.c
Previous file: linux/net/sunrpc/clnt.c
Back to the patch index
Back to the overall index
- Lines: 46
- Date:
Tue Sep 1 11:34:20 1998
- Orig file:
v2.1.119/linux/net/sunrpc/sched.c
- Orig date:
Wed Aug 26 11:37:45 1998
diff -u --recursive --new-file v2.1.119/linux/net/sunrpc/sched.c linux/net/sunrpc/sched.c
@@ -416,8 +416,11 @@
current->timeout = 0;
sleep_on(&task->tk_wait);
- /* When the task received a signal, remove from
- * any queues etc, and make runnable again. */
+ /*
+ * When the task received a signal, remove from
+ * any queues etc, and make runnable again.
+ */
+ checksignals();
if (signalled())
__rpc_wake_up(task);
@@ -432,6 +435,7 @@
* clean up after sleeping on some queue, we don't
* break the loop here, but go around once more.
*/
+ checksignals();
if (!RPC_IS_ASYNC(task) && signalled()) {
dprintk("RPC: %4d got signal\n", task->tk_pid);
rpc_exit(task, -ERESTARTSYS);
@@ -551,6 +555,7 @@
if (flags & RPC_TASK_ASYNC)
return NULL;
current->timeout = jiffies + (HZ >> 4);
+ checksignals();
current->state = TASK_INTERRUPTIBLE;
schedule();
} while (!signalled());
@@ -797,6 +802,7 @@
dprintk("RPC: rpciod starting (pid %d)\n", rpciod_pid);
while (rpciod_users) {
+ checksignals();
if (signalled()) {
rpciod_killall();
flush_signals(current);
@@ -925,6 +931,7 @@
*/
while (rpciod_pid) {
dprintk("rpciod_down: waiting for pid %d to exit\n", rpciod_pid);
+ checksignals();
if (signalled()) {
dprintk("rpciod_down: caught signal\n");
break;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov