blk-mq: rework I/O completions
authorChristoph Hellwig <hch@infradead.org>
Mon, 10 Feb 2014 11:24:38 +0000 (03:24 -0800)
committerJens Axboe <axboe@fb.com>
Mon, 10 Feb 2014 16:27:31 +0000 (09:27 -0700)
commit30a91cb4ef385fe1b260df204ef314d86fff2850
tree97ecc925cb7868f456d5dd3219980be5dc01d900
parentc4540a7d8c1e595560e53acedf88901daf15a2b5
blk-mq: rework I/O completions

Rework I/O completions to work more like the old code path.  blk_mq_end_io
now stays out of the business of deferring completions to others CPUs
and calling blk_mark_rq_complete.  The latter is very important to allow
completing requests that have timed out and thus are already marked completed,
the former allows using the IPI callout even for driver specific completions
instead of having to reimplement them.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
block/blk-mq.c
block/blk-mq.h
block/blk-timeout.c
include/linux/blk-mq.h