diff options
Diffstat (limited to 'net/sunrpc/sched.c')
| -rw-r--r-- | net/sunrpc/sched.c | 14 | 
1 files changed, 5 insertions, 9 deletions
diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c index 6eab9bf94ba..6288af05c20 100644 --- a/net/sunrpc/sched.c +++ b/net/sunrpc/sched.c @@ -626,19 +626,15 @@ static void __rpc_execute(struct rpc_task *task)  		/*  		 * Execute any pending callback.  		 */ -		if (RPC_DO_CALLBACK(task)) { -			/* Define a callback save pointer */ +		if (task->tk_callback) {  			void (*save_callback)(struct rpc_task *);  			/* -			 * If a callback exists, save it, reset it, -			 * call it. -			 * The save is needed to stop from resetting -			 * another callback set within the callback handler -			 * - Dave +			 * We set tk_callback to NULL before calling it, +			 * in case it sets the tk_callback field itself:  			 */ -			save_callback=task->tk_callback; -			task->tk_callback=NULL; +			save_callback = task->tk_callback; +			task->tk_callback = NULL;  			save_callback(task);  		}  |