diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2008-02-22 15:46:41 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2008-02-26 00:40:40 -0500 |
commit | 96ef13b283934fbf60b732e6c4ce23e8babd0042 (patch) | |
tree | 9efa8e92ff2e7f27746b65214a43ca3a4aed1b14 /include/linux/sunrpc | |
parent | fde95c7554aa77f9a242f32b0b5f8f15395abf52 (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')
-rw-r--r-- | include/linux/sunrpc/sched.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/include/linux/sunrpc/sched.h b/include/linux/sunrpc/sched.h index fefb0ab52189..83f67779cf00 100644 --- a/include/linux/sunrpc/sched.h +++ b/include/linux/sunrpc/sched.h | |||
@@ -33,7 +33,6 @@ struct rpc_wait_queue; | |||
33 | struct rpc_wait { | 33 | struct 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 *); | |||
233 | void rpc_sleep_on(struct rpc_wait_queue *, struct rpc_task *, | 233 | void rpc_sleep_on(struct rpc_wait_queue *, struct rpc_task *, |
234 | rpc_action action, rpc_action timer); | 234 | rpc_action action, rpc_action timer); |
235 | void rpc_wake_up_task(struct rpc_task *); | 235 | void rpc_wake_up_task(struct rpc_task *); |
236 | void rpc_wake_up_queued_task(struct rpc_wait_queue *, | ||
237 | struct rpc_task *); | ||
236 | void rpc_wake_up(struct rpc_wait_queue *); | 238 | void rpc_wake_up(struct rpc_wait_queue *); |
237 | struct rpc_task *rpc_wake_up_next(struct rpc_wait_queue *); | 239 | struct rpc_task *rpc_wake_up_next(struct rpc_wait_queue *); |
238 | void rpc_wake_up_status(struct rpc_wait_queue *, int); | 240 | void rpc_wake_up_status(struct rpc_wait_queue *, int); |