aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/elevator.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/elevator.h')
-rw-r--r--include/linux/elevator.h8
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
15typedef int (elevator_allow_merge_fn) (struct request_queue *, struct request *, struct bio *); 15typedef int (elevator_allow_merge_fn) (struct request_queue *, struct request *, struct bio *);
16 16
17typedef void (elevator_bio_merged_fn) (struct request_queue *,
18 struct request *, struct bio *);
19
17typedef int (elevator_dispatch_fn) (struct request_queue *, int); 20typedef int (elevator_dispatch_fn) (struct request_queue *, int);
18 21
19typedef void (elevator_add_req_fn) (struct request_queue *, struct request *); 22typedef 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 *);
103extern void elv_merge_requests(struct request_queue *, struct request *, 108extern void elv_merge_requests(struct request_queue *, struct request *,
104 struct request *); 109 struct request *);
105extern void elv_merged_request(struct request_queue *, struct request *, int); 110extern void elv_merged_request(struct request_queue *, struct request *, int);
111extern void elv_bio_merged(struct request_queue *q, struct request *,
112 struct bio *);
106extern void elv_requeue_request(struct request_queue *, struct request *); 113extern void elv_requeue_request(struct request_queue *, struct request *);
107extern int elv_queue_empty(struct request_queue *); 114extern int elv_queue_empty(struct request_queue *);
108extern struct request *elv_former_request(struct request_queue *, struct request *); 115extern 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
131extern int elevator_init(struct request_queue *, char *); 138extern int elevator_init(struct request_queue *, char *);
132extern void elevator_exit(struct elevator_queue *); 139extern void elevator_exit(struct elevator_queue *);
140extern int elevator_change(struct request_queue *, const char *);
133extern int elv_rq_merge_ok(struct request *, struct bio *); 141extern int elv_rq_merge_ok(struct request *, struct bio *);
134 142
135/* 143/*