diff options
| -rw-r--r-- | include/linux/sunrpc/sched.h | 7 | ||||
| -rw-r--r-- | net/sunrpc/sched.c | 20 | 
2 files changed, 10 insertions, 17 deletions
diff --git a/include/linux/sunrpc/sched.h b/include/linux/sunrpc/sched.h index 7be4f3a6d24..88513fd8e20 100644 --- a/include/linux/sunrpc/sched.h +++ b/include/linux/sunrpc/sched.h @@ -213,6 +213,7 @@ struct rpc_task *rpc_run_bc_task(struct rpc_rqst *req,  				const struct rpc_call_ops *ops);  void		rpc_put_task(struct rpc_task *);  void		rpc_exit_task(struct rpc_task *); +void		rpc_exit(struct rpc_task *, int);  void		rpc_release_calldata(const struct rpc_call_ops *, void *);  void		rpc_killall_tasks(struct rpc_clnt *);  void		rpc_execute(struct rpc_task *); @@ -241,12 +242,6 @@ void		rpc_destroy_mempool(void);  extern struct workqueue_struct *rpciod_workqueue;  void		rpc_prepare_task(struct rpc_task *task); -static inline void rpc_exit(struct rpc_task *task, int status) -{ -	task->tk_status = status; -	task->tk_action = rpc_exit_task; -} -  static inline int rpc_wait_for_completion_task(struct rpc_task *task)  {  	return __rpc_wait_for_completion_task(task, NULL); diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c index 4a843b883b8..37452762af7 100644 --- a/net/sunrpc/sched.c +++ b/net/sunrpc/sched.c @@ -406,14 +406,6 @@ void rpc_wake_up_queued_task(struct rpc_wait_queue *queue, struct rpc_task *task  EXPORT_SYMBOL_GPL(rpc_wake_up_queued_task);  /* - * Wake up the specified task - */ -static void rpc_wake_up_task(struct rpc_task *task) -{ -	rpc_wake_up_queued_task(task->tk_waitqueue, task); -} - -/*   * Wake up the next task on a priority queue.   */  static struct rpc_task * __rpc_wake_up_next_priority(struct rpc_wait_queue *queue) @@ -600,7 +592,15 @@ void rpc_exit_task(struct rpc_task *task)  		}  	}  } -EXPORT_SYMBOL_GPL(rpc_exit_task); + +void rpc_exit(struct rpc_task *task, int status) +{ +	task->tk_status = status; +	task->tk_action = rpc_exit_task; +	if (RPC_IS_QUEUED(task)) +		rpc_wake_up_queued_task(task->tk_waitqueue, task); +} +EXPORT_SYMBOL_GPL(rpc_exit);  void rpc_release_calldata(const struct rpc_call_ops *ops, void *calldata)  { @@ -690,7 +690,6 @@ static void __rpc_execute(struct rpc_task *task)  			dprintk("RPC: %5u got signal\n", task->tk_pid);  			task->tk_flags |= RPC_TASK_KILLED;  			rpc_exit(task, -ERESTARTSYS); -			rpc_wake_up_task(task);  		}  		rpc_set_running(task);  		dprintk("RPC: %5u sync task resuming\n", task->tk_pid); @@ -950,7 +949,6 @@ void rpc_killall_tasks(struct rpc_clnt *clnt)  		if (!(rovr->tk_flags & RPC_TASK_KILLED)) {  			rovr->tk_flags |= RPC_TASK_KILLED;  			rpc_exit(rovr, -EIO); -			rpc_wake_up_task(rovr);  		}  	}  	spin_unlock(&clnt->cl_lock);  |