Commit fd61af0384014ca29428ace7c17a978b755aeddd
Committed by
Jens Axboe
1 parent
caaa5f9f0a
[PATCH] cfq-iosched: rq update fixes
- Remember to set ->last_sector so that the cfq_choose_req() logic works correctly. - Remove redundant call to cfq_choose_req() Signed-off-by: Jens Axboe <axboe@suse.de>
Showing 1 changed file with 5 additions and 5 deletions Side-by-side Diff
block/cfq-iosched.c
... | ... | @@ -952,11 +952,15 @@ |
952 | 952 | { |
953 | 953 | struct cfq_data *cfqd = q->elevator->elevator_data; |
954 | 954 | struct cfq_queue *cfqq = crq->cfq_queue; |
955 | + struct request *rq; | |
955 | 956 | |
956 | 957 | cfqq->next_crq = cfq_find_next_crq(cfqd, cfqq, crq); |
957 | 958 | cfq_remove_request(crq->request); |
958 | 959 | cfqq->on_dispatch[cfq_crq_is_sync(crq)]++; |
959 | 960 | elv_dispatch_sort(q, crq->request); |
961 | + | |
962 | + rq = list_entry(q->queue_head.prev, struct request, queuelist); | |
963 | + cfqd->last_sector = rq->sector + rq->nr_sectors; | |
960 | 964 | } |
961 | 965 | |
962 | 966 | /* |
... | ... | @@ -1767,11 +1771,7 @@ |
1767 | 1771 | cfq_crq_enqueued(struct cfq_data *cfqd, struct cfq_queue *cfqq, |
1768 | 1772 | struct cfq_rq *crq) |
1769 | 1773 | { |
1770 | - struct cfq_io_context *cic; | |
1771 | - | |
1772 | - cfqq->next_crq = cfq_choose_req(cfqd, cfqq->next_crq, crq); | |
1773 | - | |
1774 | - cic = crq->io_context; | |
1774 | + struct cfq_io_context *cic = crq->io_context; | |
1775 | 1775 | |
1776 | 1776 | /* |
1777 | 1777 | * we never wait for an async request and we don't allow preemption |