aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/sunrpc/sched.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c
index a1ab4eed41f4..b57d4062d429 100644
--- a/net/sunrpc/sched.c
+++ b/net/sunrpc/sched.c
@@ -295,13 +295,15 @@ EXPORT_SYMBOL(__rpc_wait_for_completion_task);
295 */ 295 */
296static void rpc_make_runnable(struct rpc_task *task) 296static void rpc_make_runnable(struct rpc_task *task)
297{ 297{
298 int do_ret;
299
300 BUG_ON(task->tk_timeout_fn); 298 BUG_ON(task->tk_timeout_fn);
301 do_ret = rpc_test_and_set_running(task);
302 rpc_clear_queued(task); 299 rpc_clear_queued(task);
303 if (do_ret) 300 if (rpc_test_and_set_running(task))
301 return;
302 /* We might have raced */
303 if (RPC_IS_QUEUED(task)) {
304 rpc_clear_running(task);
304 return; 305 return;
306 }
305 if (RPC_IS_ASYNC(task)) { 307 if (RPC_IS_ASYNC(task)) {
306 int status; 308 int status;
307 309