diff options
Diffstat (limited to 'include/linux/elevator.h')
| -rw-r--r-- | include/linux/elevator.h | 15 | 
1 files changed, 10 insertions, 5 deletions
| diff --git a/include/linux/elevator.h b/include/linux/elevator.h index 638b324f0291..e7f358d2e5fc 100644 --- a/include/linux/elevator.h +++ b/include/linux/elevator.h @@ -16,7 +16,11 @@ typedef void (elevator_merge_req_fn) (struct request_queue *, struct request *,  typedef void (elevator_merged_fn) (struct request_queue *, struct request *, int); -typedef int (elevator_allow_merge_fn) (struct request_queue *, struct request *, struct bio *); +typedef int (elevator_allow_bio_merge_fn) (struct request_queue *, +					   struct request *, struct bio *); + +typedef int (elevator_allow_rq_merge_fn) (struct request_queue *, +					  struct request *, struct request *);  typedef void (elevator_bio_merged_fn) (struct request_queue *,  						struct request *, struct bio *); @@ -26,7 +30,7 @@ typedef int (elevator_dispatch_fn) (struct request_queue *, int);  typedef void (elevator_add_req_fn) (struct request_queue *, struct request *);  typedef struct request *(elevator_request_list_fn) (struct request_queue *, struct request *);  typedef void (elevator_completed_req_fn) (struct request_queue *, struct request *); -typedef int (elevator_may_queue_fn) (struct request_queue *, int); +typedef int (elevator_may_queue_fn) (struct request_queue *, int, int);  typedef void (elevator_init_icq_fn) (struct io_cq *);  typedef void (elevator_exit_icq_fn) (struct io_cq *); @@ -46,7 +50,8 @@ struct elevator_ops  	elevator_merge_fn *elevator_merge_fn;  	elevator_merged_fn *elevator_merged_fn;  	elevator_merge_req_fn *elevator_merge_req_fn; -	elevator_allow_merge_fn *elevator_allow_merge_fn; +	elevator_allow_bio_merge_fn *elevator_allow_bio_merge_fn; +	elevator_allow_rq_merge_fn *elevator_allow_rq_merge_fn;  	elevator_bio_merged_fn *elevator_bio_merged_fn;  	elevator_dispatch_fn *elevator_dispatch_fn; @@ -134,7 +139,7 @@ extern struct request *elv_former_request(struct request_queue *, struct request  extern struct request *elv_latter_request(struct request_queue *, struct request *);  extern int elv_register_queue(struct request_queue *q);  extern void elv_unregister_queue(struct request_queue *q); -extern int elv_may_queue(struct request_queue *, int); +extern int elv_may_queue(struct request_queue *, int, int);  extern void elv_completed_request(struct request_queue *, struct request *);  extern int elv_set_request(struct request_queue *q, struct request *rq,  			   struct bio *bio, gfp_t gfp_mask); @@ -157,7 +162,7 @@ extern ssize_t elv_iosched_store(struct request_queue *, const char *, size_t);  extern int elevator_init(struct request_queue *, char *);  extern void elevator_exit(struct elevator_queue *);  extern int elevator_change(struct request_queue *, const char *); -extern bool elv_rq_merge_ok(struct request *, struct bio *); +extern bool elv_bio_merge_ok(struct request *, struct bio *);  extern struct elevator_queue *elevator_alloc(struct request_queue *,  					struct elevator_type *); |