diff options
author | Tejun Heo <htejun@gmail.com> | 2005-11-10 12:22:36 -0500 |
---|---|---|
committer | Jens Axboe <axboe@nelson.home.kernel.dk> | 2005-11-12 04:57:05 -0500 |
commit | 3beb2077125d8457118140653e75efc998ac6630 (patch) | |
tree | 130dd33c810471790554d21eab32f5f859715fd7 /block | |
parent | 5a7c47eefb31f6b4982add7473ef3e551b058ea4 (diff) |
[BLOCK] elevator: elv_latter/former_request update
With generic dispatch queue update, implicit former/latter request
handling using rq->queuelist.prev/next doesn't work as expected
anymore. Also, the only iosched dependent on this feature was
noop-iosched and it has been reimplemented to have its own
latter/former methods. This patch removes implicit former/latter
handling.
Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jens Axboe <axboe@suse.de>
Diffstat (limited to 'block')
-rw-r--r-- | block/elevator.c | 14 |
1 files changed, 0 insertions, 14 deletions
diff --git a/block/elevator.c b/block/elevator.c index cacfff7418e4..e4c58827bb46 100644 --- a/block/elevator.c +++ b/block/elevator.c | |||
@@ -541,33 +541,19 @@ int elv_queue_empty(request_queue_t *q) | |||
541 | 541 | ||
542 | struct request *elv_latter_request(request_queue_t *q, struct request *rq) | 542 | struct request *elv_latter_request(request_queue_t *q, struct request *rq) |
543 | { | 543 | { |
544 | struct list_head *next; | ||
545 | |||
546 | elevator_t *e = q->elevator; | 544 | elevator_t *e = q->elevator; |
547 | 545 | ||
548 | if (e->ops->elevator_latter_req_fn) | 546 | if (e->ops->elevator_latter_req_fn) |
549 | return e->ops->elevator_latter_req_fn(q, rq); | 547 | return e->ops->elevator_latter_req_fn(q, rq); |
550 | |||
551 | next = rq->queuelist.next; | ||
552 | if (next != &q->queue_head && next != &rq->queuelist) | ||
553 | return list_entry_rq(next); | ||
554 | |||
555 | return NULL; | 548 | return NULL; |
556 | } | 549 | } |
557 | 550 | ||
558 | struct request *elv_former_request(request_queue_t *q, struct request *rq) | 551 | struct request *elv_former_request(request_queue_t *q, struct request *rq) |
559 | { | 552 | { |
560 | struct list_head *prev; | ||
561 | |||
562 | elevator_t *e = q->elevator; | 553 | elevator_t *e = q->elevator; |
563 | 554 | ||
564 | if (e->ops->elevator_former_req_fn) | 555 | if (e->ops->elevator_former_req_fn) |
565 | return e->ops->elevator_former_req_fn(q, rq); | 556 | return e->ops->elevator_former_req_fn(q, rq); |
566 | |||
567 | prev = rq->queuelist.prev; | ||
568 | if (prev != &q->queue_head && prev != &rq->queuelist) | ||
569 | return list_entry_rq(prev); | ||
570 | |||
571 | return NULL; | 557 | return NULL; |
572 | } | 558 | } |
573 | 559 | ||