|
@@ -343,7 +343,12 @@ void rpc_sleep_on(struct rpc_wait_queue *q, struct rpc_task *task,
|
|
|
rpc_action action)
|
|
|
{
|
|
|
/* We shouldn't ever put an inactive task to sleep */
|
|
|
- BUG_ON(!RPC_IS_ACTIVATED(task));
|
|
|
+ WARN_ON_ONCE(!RPC_IS_ACTIVATED(task));
|
|
|
+ if (!RPC_IS_ACTIVATED(task)) {
|
|
|
+ task->tk_status = -EIO;
|
|
|
+ rpc_put_task_async(task);
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
/*
|
|
|
* Protect the queue operations.
|
|
@@ -358,7 +363,12 @@ void rpc_sleep_on_priority(struct rpc_wait_queue *q, struct rpc_task *task,
|
|
|
rpc_action action, int priority)
|
|
|
{
|
|
|
/* We shouldn't ever put an inactive task to sleep */
|
|
|
- BUG_ON(!RPC_IS_ACTIVATED(task));
|
|
|
+ WARN_ON_ONCE(!RPC_IS_ACTIVATED(task));
|
|
|
+ if (!RPC_IS_ACTIVATED(task)) {
|
|
|
+ task->tk_status = -EIO;
|
|
|
+ rpc_put_task_async(task);
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
/*
|
|
|
* Protect the queue operations.
|