blk-mq: push IPI or local end_io decision to __blk_mq_complete_request()
authorJens Axboe <axboe@fb.com>
Sat, 31 May 2014 03:20:50 +0000 (21:20 -0600)
committerJens Axboe <axboe@fb.com>
Sat, 31 May 2014 03:20:50 +0000 (21:20 -0600)
commited851860b4552fc8963ecf71eab9f6f7a5c19d74
treed9fc4edbe2dd1400855705e8407cf0f87d2dc3ea
parentfeff6894128e4bb3c903ce247edc5bd3a1b09fc9
blk-mq: push IPI or local end_io decision to __blk_mq_complete_request()

We have callers outside of the blk-mq proper (like timeouts) that
want to call __blk_mq_complete_request(), so rename the function
and put the decision code for whether to use ->softirq_done_fn
or blk_mq_endio() into __blk_mq_complete_request().

This also makes the interface more logical again.
blk_mq_complete_request() attempts to atomically mark the request
completed, and calls __blk_mq_complete_request() if successful.
__blk_mq_complete_request() then just ends the request.

Signed-off-by: Jens Axboe <axboe@fb.com>
block/blk-mq.c