blk-mq: add mq_ops->commit_rqs()
authorJens Axboe <axboe@kernel.dk>
Wed, 28 Nov 2018 00:02:25 +0000 (17:02 -0700)
committerJens Axboe <axboe@kernel.dk>
Thu, 29 Nov 2018 17:11:56 +0000 (10:11 -0700)
commitd666ba98f849ad44c4405ecc2180390ebe80f4f9
tree90c90e15f230ca59ec094620b3e08f51af9d035f
parentce5b009cff1961137127edf91f44effd0eec8ffd
blk-mq: add mq_ops->commit_rqs()

blk-mq passes information to the hardware about any given request being
the last that we will issue in this sequence. The point is that hardware
can defer costly doorbell type writes to the last request. But if we run
into errors issuing a sequence of requests, we may never send the request
with bd->last == true set. For that case, we need a hook that tells the
hardware that nothing else is coming right now.

For failures returned by the drivers ->queue_rq() hook, the driver is
responsible for flushing pending requests, if it uses bd->last to
optimize that part. This works like before, no changes there.

Reviewed-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-mq.c
include/linux/blk-mq.h