mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 12:43:29 +02:00
blk-mq: introduce blk_mq_set_request_complete
nvme drivers need to set the state of request to MQ_RQ_COMPLETE when directly complete request in queue_rq. So add blk_mq_set_request_complete. Signed-off-by: Chao Leng <lengchao@huawei.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
committed by
Christoph Hellwig
parent
f720a8edbc
commit
83fba8c811
@@ -490,6 +490,18 @@ static inline int blk_mq_request_completed(struct request *rq)
|
|||||||
return blk_mq_rq_state(rq) == MQ_RQ_COMPLETE;
|
return blk_mq_rq_state(rq) == MQ_RQ_COMPLETE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* Set the state to complete when completing a request from inside ->queue_rq.
|
||||||
|
* This is used by drivers that want to ensure special complete actions that
|
||||||
|
* need access to the request are called on failure, e.g. by nvme for
|
||||||
|
* multipathing.
|
||||||
|
*/
|
||||||
|
static inline void blk_mq_set_request_complete(struct request *rq)
|
||||||
|
{
|
||||||
|
WRITE_ONCE(rq->state, MQ_RQ_COMPLETE);
|
||||||
|
}
|
||||||
|
|
||||||
void blk_mq_start_request(struct request *rq);
|
void blk_mq_start_request(struct request *rq);
|
||||||
void blk_mq_end_request(struct request *rq, blk_status_t error);
|
void blk_mq_end_request(struct request *rq, blk_status_t error);
|
||||||
void __blk_mq_end_request(struct request *rq, blk_status_t error);
|
void __blk_mq_end_request(struct request *rq, blk_status_t error);
|
||||||
|
Reference in New Issue
Block a user