blk-mq-sched: unify request prepare methods
authorChristoph Hellwig <hch@lst.de>
Fri, 16 Jun 2017 16:15:26 +0000 (18:15 +0200)
committerJens Axboe <axboe@kernel.dk>
Sun, 18 Jun 2017 16:08:55 +0000 (10:08 -0600)
commit5bbf4e5a8e3a780874b2ed77bd1bd57850f3f6da
tree06835c621f167a8cc563d57a6d6e29d127078967
parent44e8c2bff80bb384a608406009948f90a78bf8a3
blk-mq-sched: unify request prepare methods

This patch makes sure we always allocate requests in the core blk-mq
code and use a common prepare_request method to initialize them for
both mq I/O schedulers.  For Kyber and additional limit_depth method
is added that is called before allocating the request.

Also because none of the intializations can really fail the new method
does not return an error - instead the bfq finish method is hardened
to deal with the no-IOC case.

Last but not least this removes the abuse of RQF_QUEUE by the blk-mq
scheduling code as RQF_ELFPRIV is all that is needed now.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/bfq-iosched.c
block/blk-mq.c
block/kyber-iosched.c
include/linux/elevator.h