diff -u --recursive --new-file linux-2.4.7-ping/net/sunrpc/sched.c linux-2.4.7-rpc_sched/net/sunrpc/sched.c --- linux-2.4.7-ping/net/sunrpc/sched.c Thu Jul 12 20:31:57 2001 +++ linux-2.4.7-rpc_sched/net/sunrpc/sched.c Thu Jul 12 20:41:48 2001 @@ -772,8 +772,8 @@ } if (flags & RPC_TASK_ASYNC) return NULL; - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout(HZ>>4); + current->policy |= SCHED_YIELD; + schedule(); } while (!signalled()); return NULL; @@ -1118,8 +1118,8 @@ __rpc_schedule(); if (all_tasks) { dprintk("rpciod_killall: waiting for tasks to exit\n"); - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout(1); + current->policy |= SCHED_YIELD; + schedule(); } } @@ -1189,8 +1189,8 @@ * wait briefly before checking the process id. */ current->sigpending = 0; - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout(1); + current->policy |= SCHED_YIELD; + schedule(); /* * Display a message if we're going to wait longer. */