From 7aaebe6650e3d628ff50e6a4e685521ade969aab Mon Sep 17 00:00:00 2001 From: Ming Lei Date: Thu, 22 Oct 2020 20:35:12 +0800 Subject: [PATCH] blk-mq: introduce blk_mq_request_completed() mainline inclusion from mainline-v5.4-rc1 commit aa306ab703e9452b1e25cc8e8f04b8df523d0bb8 category: bugfix bugzilla: NA CVE: NA Link: https://gitee.com/openeuler/kernel/issues/I1WGZE ------------------------------------------------- NVMe needs this function to decide if one request to be aborted has been completed in normal IO path already. So introduce it. Cc: Max Gurtovoy Cc: Sagi Grimberg Cc: Keith Busch Cc: Christoph Hellwig Reviewed-by: Sagi Grimberg Signed-off-by: Ming Lei Signed-off-by: Jens Axboe Reviewed-by: Chao Leng Reviewed-by: Jike Cheng Signed-off-by: Ruozhu Li Signed-off-by: Lijie Reviewed-by: Tao Hou Signed-off-by: Yang Yingliang --- block/blk-mq.c | 6 ++++++ include/linux/blk-mq.h | 1 + 2 files changed, 7 insertions(+) diff --git a/block/blk-mq.c b/block/blk-mq.c index a2b735263dff..c77f1204f2d7 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -627,6 +627,12 @@ int blk_mq_request_started(struct request *rq) } EXPORT_SYMBOL_GPL(blk_mq_request_started); +int blk_mq_request_completed(struct request *rq) +{ + return blk_mq_rq_state(rq) == MQ_RQ_COMPLETE; +} +EXPORT_SYMBOL_GPL(blk_mq_request_completed); + void blk_mq_start_request(struct request *rq) { struct request_queue *q = rq->q; diff --git a/include/linux/blk-mq.h b/include/linux/blk-mq.h index 4878d8ed4914..b414cad68024 100644 --- a/include/linux/blk-mq.h +++ b/include/linux/blk-mq.h @@ -288,6 +288,7 @@ static inline u16 blk_mq_unique_tag_to_tag(u32 unique_tag) int blk_mq_request_started(struct request *rq); +int blk_mq_request_completed(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); -- GitLab