diff options
Diffstat (limited to 'net/sunrpc/sched.c')
-rw-r--r-- | net/sunrpc/sched.c | 14 |
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. |