blk-mq: don't call io sched's .requeue_request when requeueing rq to ->dispatch
authorMing Lei <ming.lei@redhat.com>
Fri, 23 Feb 2018 15:36:56 +0000 (23:36 +0800)
committerJens Axboe <axboe@kernel.dk>
Sat, 24 Feb 2018 22:55:54 +0000 (15:55 -0700)
commit105976f517791aed3b11f8f53b308a2069d42055
tree2c3d09d3f0e2495be37f67b29f45a5ca19089bf2
parent0bd1ed4860d0f5f836aa8371797689a3779d1bf5
blk-mq: don't call io sched's .requeue_request when requeueing rq to ->dispatch

__blk_mq_requeue_request() covers two cases:

- one is that the requeued request is added to hctx->dispatch, such as
blk_mq_dispatch_rq_list()

- another case is that the request is requeued to io scheduler, such as
blk_mq_requeue_request().

We should call io sched's .requeue_request callback only for the 2nd
case.

Cc: Paolo Valente <paolo.valente@linaro.org>
Cc: Omar Sandoval <osandov@fb.com>
Fixes: bd166ef183c2 ("blk-mq-sched: add framework for MQ capable IO schedulers")
Cc: stable@vger.kernel.org
Reviewed-by: Bart Van Assche <bart.vanassche@wdc.com>
Acked-by: Paolo Valente <paolo.valente@linaro.org>
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-mq.c