X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=net%2Fsunrpc%2Fsched.c;h=aa2205a2c19a1a666299b148ca9ea0545ca64e22;hb=c7b5ebbddf7bcd3651947760f423e3783bbe6573;hp=ae45a763a09d1920e17f295957138510ef1b4a5f;hpb=a2c21200f1c81b08cb55e417b68150bba439b646;p=linux-2.6.git diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c index ae45a763a..aa2205a2c 100644 --- a/net/sunrpc/sched.c +++ b/net/sunrpc/sched.c @@ -698,7 +698,7 @@ __rpc_execute(struct rpc_task *task) if (current->pid == rpciod_pid) printk(KERN_ERR "RPC: rpciod waiting on sync task!\n"); - if (!task->tk_client->cl_intr) { + if (RPC_TASK_UNINTERRUPTIBLE(task)) { __wait_event(task->tk_wait, !RPC_IS_SLEEPING(task)); } else { __wait_event_interruptible(task->tk_wait, !RPC_IS_SLEEPING(task), status); @@ -884,6 +884,8 @@ void rpc_init_task(struct rpc_task *task, struct rpc_clnt *clnt, rpc_action call atomic_inc(&clnt->cl_users); if (clnt->cl_softrtry) task->tk_flags |= RPC_TASK_SOFT; + if (!clnt->cl_intr) + task->tk_flags |= RPC_TASK_NOINTR; } #ifdef RPC_DEBUG