aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/sunrpc/sched.h
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2008-02-22 15:46:41 -0500
committerTrond Myklebust <Trond.Myklebust@netapp.com>2008-02-26 00:40:40 -0500
commit96ef13b283934fbf60b732e6c4ce23e8babd0042 (patch)
tree9efa8e92ff2e7f27746b65214a43ca3a4aed1b14 /include/linux/sunrpc/sched.h
parentfde95c7554aa77f9a242f32b0b5f8f15395abf52 (diff)
SUNRPC: Add a new helper rpc_wake_up_queued_task()
In all cases where we currently use rpc_wake_up_task(), we almost always know on which waitqueue the rpc_task is actually sleeping. This will allows us to simplify the queue locking in a future patch. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'include/linux/sunrpc/sched.h')
-rw-r--r--include/linux/sunrpc/sched.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/include/linux/sunrpc/sched.h b/include/linux/sunrpc/sched.h
index fefb0ab5218..83f67779cf0 100644
--- a/include/linux/sunrpc/sched.h
+++ b/include/linux/sunrpc/sched.h
@@ -33,7 +33,6 @@ struct rpc_wait_queue;
33struct rpc_wait { 33struct rpc_wait {
34 struct list_head list; /* wait queue links */ 34 struct list_head list; /* wait queue links */
35 struct list_head links; /* Links to related tasks */ 35 struct list_head links; /* Links to related tasks */
36 struct rpc_wait_queue * rpc_waitq; /* RPC wait queue we're on */
37}; 36};
38 37
39/* 38/*
@@ -80,6 +79,7 @@ struct rpc_task {
80 struct workqueue_struct *tk_workqueue; /* Normally rpciod, but could 79 struct workqueue_struct *tk_workqueue; /* Normally rpciod, but could
81 * be any workqueue 80 * be any workqueue
82 */ 81 */
82 struct rpc_wait_queue *tk_waitqueue; /* RPC wait queue we're on */
83 union { 83 union {
84 struct work_struct tk_work; /* Async task work queue */ 84 struct work_struct tk_work; /* Async task work queue */
85 struct rpc_wait tk_wait; /* RPC wait */ 85 struct rpc_wait tk_wait; /* RPC wait */
@@ -233,6 +233,8 @@ void rpc_init_wait_queue(struct rpc_wait_queue *, const char *);
233void rpc_sleep_on(struct rpc_wait_queue *, struct rpc_task *, 233void rpc_sleep_on(struct rpc_wait_queue *, struct rpc_task *,
234 rpc_action action, rpc_action timer); 234 rpc_action action, rpc_action timer);
235void rpc_wake_up_task(struct rpc_task *); 235void rpc_wake_up_task(struct rpc_task *);
236void rpc_wake_up_queued_task(struct rpc_wait_queue *,
237 struct rpc_task *);
236void rpc_wake_up(struct rpc_wait_queue *); 238void rpc_wake_up(struct rpc_wait_queue *);
237struct rpc_task *rpc_wake_up_next(struct rpc_wait_queue *); 239struct rpc_task *rpc_wake_up_next(struct rpc_wait_queue *);
238void rpc_wake_up_status(struct rpc_wait_queue *, int); 240void rpc_wake_up_status(struct rpc_wait_queue *, int);