blk-mq: support partial I/O completions
Add a new blk_mq_end_io_partial function to partially complete requests as needed by the SCSI layer. We do this by reusing blk_update_request to advance the bio instead of having a simplified version of it in the blk-mq code. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
parent
feb71dae1f
commit
d6a25b3131
2 changed files with 12 additions and 33 deletions
|
@ -133,7 +133,13 @@ struct blk_mq_hw_ctx *blk_mq_map_queue(struct request_queue *, const int ctx_ind
|
|||
struct blk_mq_hw_ctx *blk_mq_alloc_single_hw_queue(struct blk_mq_reg *, unsigned int);
|
||||
void blk_mq_free_single_hw_queue(struct blk_mq_hw_ctx *, unsigned int);
|
||||
|
||||
void blk_mq_end_io(struct request *rq, int error);
|
||||
bool blk_mq_end_io_partial(struct request *rq, int error,
|
||||
unsigned int nr_bytes);
|
||||
static inline void blk_mq_end_io(struct request *rq, int error)
|
||||
{
|
||||
bool done = !blk_mq_end_io_partial(rq, error, blk_rq_bytes(rq));
|
||||
BUG_ON(!done);
|
||||
}
|
||||
|
||||
void blk_mq_complete_request(struct request *rq);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue