aboutsummaryrefslogtreecommitdiffstats
path: root/net/sunrpc/sched.c
diff options
context:
space:
mode:
authorWeston Andros Adamson <dros@netapp.com>2012-10-23 10:43:32 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2012-11-04 14:43:40 -0500
commite454a7a83d20cc5ec338ad0e3abae85f10d5a0c4 (patch)
tree185b92ac5a34e4299666f3f04b3328d960a9a7ad /net/sunrpc/sched.c
parent8b827e1f1e46c45a4c9c389676f622e569d8a8ea (diff)
SUNRPC: remove BUG_ON from rpc_sleep_on*
Replace BUG_ON() with WARN_ON_ONCE() and clean up after inactive task. Signed-off-by: Weston Andros Adamson <dros@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'net/sunrpc/sched.c')
-rw-r--r--net/sunrpc/sched.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c
index 6357fcb00c7e..f494b356e876 100644
--- a/net/sunrpc/sched.c
+++ b/net/sunrpc/sched.c
@@ -343,7 +343,12 @@ void rpc_sleep_on(struct rpc_wait_queue *q, struct rpc_task *task,
343 rpc_action action) 343 rpc_action action)
344{ 344{
345 /* We shouldn't ever put an inactive task to sleep */ 345 /* We shouldn't ever put an inactive task to sleep */
346 BUG_ON(!RPC_IS_ACTIVATED(task)); 346 WARN_ON_ONCE(!RPC_IS_ACTIVATED(task));
347 if (!RPC_IS_ACTIVATED(task)) {
348 task->tk_status = -EIO;
349 rpc_put_task_async(task);
350 return;
351 }
347 352
348 /* 353 /*
349 * Protect the queue operations. 354 * Protect the queue operations.
@@ -358,7 +363,12 @@ void rpc_sleep_on_priority(struct rpc_wait_queue *q, struct rpc_task *task,
358 rpc_action action, int priority) 363 rpc_action action, int priority)
359{ 364{
360 /* We shouldn't ever put an inactive task to sleep */ 365 /* We shouldn't ever put an inactive task to sleep */
361 BUG_ON(!RPC_IS_ACTIVATED(task)); 366 WARN_ON_ONCE(!RPC_IS_ACTIVATED(task));
367 if (!RPC_IS_ACTIVATED(task)) {
368 task->tk_status = -EIO;
369 rpc_put_task_async(task);
370 return;
371 }
362 372
363 /* 373 /*
364 * Protect the queue operations. 374 * Protect the queue operations.