diff options
| author | Weston Andros Adamson <dros@netapp.com> | 2012-10-23 10:43:32 -0400 | 
|---|---|---|
| committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-11-04 14:43:40 -0500 | 
| commit | e454a7a83d20cc5ec338ad0e3abae85f10d5a0c4 (patch) | |
| tree | 185b92ac5a34e4299666f3f04b3328d960a9a7ad /net/sunrpc/sched.c | |
| parent | 8b827e1f1e46c45a4c9c389676f622e569d8a8ea (diff) | |
| download | olio-linux-3.10-e454a7a83d20cc5ec338ad0e3abae85f10d5a0c4.tar.xz olio-linux-3.10-e454a7a83d20cc5ec338ad0e3abae85f10d5a0c4.zip  | |
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.c | 14 | 
1 files changed, 12 insertions, 2 deletions
diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c index 6357fcb00c7..f494b356e87 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,  				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.  |