The patch titled block: add elv_extended_request call to iosched API has been removed from the -mm tree. Its filename is add-elv_extended_request-call-to-iosched-api.patch This patch was dropped because Jens renamed everything ------------------------------------------------------ Subject: block: add elv_extended_request call to iosched API From: "Nate Diller" <nate.diller@xxxxxxxxx> the Elevator iosched would prefer to be unconditionally notified of a merge, but the current API calls only one 'merge' notifier (elv_merge_requests or elv_merged_requests), even if both front and back merges happened. elv_extended_request satisfies this requirement in conjunction with elv_merge_requests. Signed-off-by: Nate Diller <nate.diller@xxxxxxxxx> Cc: Jens Axboe <axboe@xxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- block/elevator.c | 9 +++++++++ block/ll_rw_blk.c | 2 ++ include/linux/elevator.h | 4 ++++ 3 files changed, 15 insertions(+) diff -puN block/elevator.c~add-elv_extended_request-call-to-iosched-api block/elevator.c --- a/block/elevator.c~add-elv_extended_request-call-to-iosched-api +++ a/block/elevator.c @@ -466,6 +466,15 @@ void elv_merged_request(request_queue_t q->last_merge = rq; } +void elv_extended_request(request_queue_t *q, struct request *rq, + int direction, int nr_sectors) +{ + elevator_t *e = q->elevator; + + if (e->ops->elevator_extended_req_fn) + e->ops->elevator_extended_req_fn(q, rq, direction, nr_sectors); +} + void elv_merge_requests(request_queue_t *q, struct request *rq, struct request *next) { diff -puN block/ll_rw_blk.c~add-elv_extended_request-call-to-iosched-api block/ll_rw_blk.c --- a/block/ll_rw_blk.c~add-elv_extended_request-call-to-iosched-api +++ a/block/ll_rw_blk.c @@ -2864,6 +2864,7 @@ static int __make_request(request_queue_ req->nr_sectors = req->hard_nr_sectors += nr_sectors; req->ioprio = ioprio_best(req->ioprio, prio); drive_stat_acct(req, nr_sectors, 0); + elv_extended_request(q, req, el_ret, nr_sectors); if (!attempt_back_merge(q, req)) elv_merged_request(q, req, el_ret); goto out; @@ -2891,6 +2892,7 @@ static int __make_request(request_queue_ req->nr_sectors = req->hard_nr_sectors += nr_sectors; req->ioprio = ioprio_best(req->ioprio, prio); drive_stat_acct(req, nr_sectors, 0); + elv_extended_request(q, req, el_ret, nr_sectors); if (!attempt_front_merge(q, req)) elv_merged_request(q, req, el_ret); goto out; diff -puN include/linux/elevator.h~add-elv_extended_request-call-to-iosched-api include/linux/elevator.h --- a/include/linux/elevator.h~add-elv_extended_request-call-to-iosched-api +++ a/include/linux/elevator.h @@ -8,6 +8,8 @@ typedef int (elevator_merge_fn) (request typedef void (elevator_merge_req_fn) (request_queue_t *, struct request *, struct request *); +typedef void (elevator_extended_req_fn) (request_queue_t *, struct request *, int, int); + typedef void (elevator_merged_fn) (request_queue_t *, struct request *, int); typedef int (elevator_dispatch_fn) (request_queue_t *, int); @@ -30,6 +32,7 @@ struct elevator_ops { elevator_merge_fn *elevator_merge_fn; elevator_merged_fn *elevator_merged_fn; + elevator_extended_req_fn *elevator_extended_req_fn; elevator_merge_req_fn *elevator_merge_req_fn; elevator_dispatch_fn *elevator_dispatch_fn; @@ -98,6 +101,7 @@ extern void elv_insert(request_queue_t * extern int elv_merge(request_queue_t *, struct request **, struct bio *); extern void elv_merge_requests(request_queue_t *, struct request *, struct request *); +extern void elv_extended_request(request_queue_t *, struct request *, int, int); extern void elv_merged_request(request_queue_t *, struct request *, int); extern void elv_dequeue_request(request_queue_t *, struct request *); extern void elv_requeue_request(request_queue_t *, struct request *); _ Patches currently in -mm which might be from nate.diller@xxxxxxxxx are add-elv_extended_request-call-to-iosched-api.patch add-list_merge-to-listh.patch add-the-elevator-i-o-scheduler.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html