From 8d9ec7d0fcd5bf225227ea194e572d8974647dd4 Mon Sep 17 00:00:00 2001 From: Christophe Saout Date: Sun, 5 Nov 2006 18:42:48 +0100 Subject: [PATCH] --- yaml --- r: 42492 b: refs/heads/master c: cc4dc59e5580d6c0de1685a25b74d32175f43434 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/sunrpc/sched.c | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 802694e18633..4f4938f8c8c2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ec0bf39a471bf6fcd01def2bd677128cea940b73 +refs/heads/master: cc4dc59e5580d6c0de1685a25b74d32175f43434 diff --git a/trunk/net/sunrpc/sched.c b/trunk/net/sunrpc/sched.c index a1ab4eed41f4..b57d4062d429 100644 --- a/trunk/net/sunrpc/sched.c +++ b/trunk/net/sunrpc/sched.c @@ -295,13 +295,15 @@ EXPORT_SYMBOL(__rpc_wait_for_completion_task); */ static void rpc_make_runnable(struct rpc_task *task) { - int do_ret; - BUG_ON(task->tk_timeout_fn); - do_ret = rpc_test_and_set_running(task); rpc_clear_queued(task); - if (do_ret) + if (rpc_test_and_set_running(task)) + return; + /* We might have raced */ + if (RPC_IS_QUEUED(task)) { + rpc_clear_running(task); return; + } if (RPC_IS_ASYNC(task)) { int status;