diff options
Diffstat (limited to 'include/linux/elevator.h')
-rw-r--r-- | include/linux/elevator.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/include/linux/elevator.h b/include/linux/elevator.h index 1cb3372e65d8..4fd978e7eb83 100644 --- a/include/linux/elevator.h +++ b/include/linux/elevator.h | |||
@@ -14,6 +14,9 @@ typedef void (elevator_merged_fn) (struct request_queue *, struct request *, int | |||
14 | 14 | ||
15 | typedef int (elevator_allow_merge_fn) (struct request_queue *, struct request *, struct bio *); | 15 | typedef int (elevator_allow_merge_fn) (struct request_queue *, struct request *, struct bio *); |
16 | 16 | ||
17 | typedef void (elevator_bio_merged_fn) (struct request_queue *, | ||
18 | struct request *, struct bio *); | ||
19 | |||
17 | typedef int (elevator_dispatch_fn) (struct request_queue *, int); | 20 | typedef int (elevator_dispatch_fn) (struct request_queue *, int); |
18 | 21 | ||
19 | typedef void (elevator_add_req_fn) (struct request_queue *, struct request *); | 22 | typedef void (elevator_add_req_fn) (struct request_queue *, struct request *); |
@@ -36,6 +39,7 @@ struct elevator_ops | |||
36 | elevator_merged_fn *elevator_merged_fn; | 39 | elevator_merged_fn *elevator_merged_fn; |
37 | elevator_merge_req_fn *elevator_merge_req_fn; | 40 | elevator_merge_req_fn *elevator_merge_req_fn; |
38 | elevator_allow_merge_fn *elevator_allow_merge_fn; | 41 | elevator_allow_merge_fn *elevator_allow_merge_fn; |
42 | elevator_bio_merged_fn *elevator_bio_merged_fn; | ||
39 | 43 | ||
40 | elevator_dispatch_fn *elevator_dispatch_fn; | 44 | elevator_dispatch_fn *elevator_dispatch_fn; |
41 | elevator_add_req_fn *elevator_add_req_fn; | 45 | elevator_add_req_fn *elevator_add_req_fn; |
@@ -89,6 +93,7 @@ struct elevator_queue | |||
89 | struct elevator_type *elevator_type; | 93 | struct elevator_type *elevator_type; |
90 | struct mutex sysfs_lock; | 94 | struct mutex sysfs_lock; |
91 | struct hlist_head *hash; | 95 | struct hlist_head *hash; |
96 | unsigned int registered:1; | ||
92 | }; | 97 | }; |
93 | 98 | ||
94 | /* | 99 | /* |
@@ -103,6 +108,8 @@ extern int elv_merge(struct request_queue *, struct request **, struct bio *); | |||
103 | extern void elv_merge_requests(struct request_queue *, struct request *, | 108 | extern void elv_merge_requests(struct request_queue *, struct request *, |
104 | struct request *); | 109 | struct request *); |
105 | extern void elv_merged_request(struct request_queue *, struct request *, int); | 110 | extern void elv_merged_request(struct request_queue *, struct request *, int); |
111 | extern void elv_bio_merged(struct request_queue *q, struct request *, | ||
112 | struct bio *); | ||
106 | extern void elv_requeue_request(struct request_queue *, struct request *); | 113 | extern void elv_requeue_request(struct request_queue *, struct request *); |
107 | extern int elv_queue_empty(struct request_queue *); | 114 | extern int elv_queue_empty(struct request_queue *); |
108 | extern struct request *elv_former_request(struct request_queue *, struct request *); | 115 | extern struct request *elv_former_request(struct request_queue *, struct request *); |
@@ -130,6 +137,7 @@ extern ssize_t elv_iosched_store(struct request_queue *, const char *, size_t); | |||
130 | 137 | ||
131 | extern int elevator_init(struct request_queue *, char *); | 138 | extern int elevator_init(struct request_queue *, char *); |
132 | extern void elevator_exit(struct elevator_queue *); | 139 | extern void elevator_exit(struct elevator_queue *); |
140 | extern int elevator_change(struct request_queue *, const char *); | ||
133 | extern int elv_rq_merge_ok(struct request *, struct bio *); | 141 | extern int elv_rq_merge_ok(struct request *, struct bio *); |
134 | 142 | ||
135 | /* | 143 | /* |