[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250128-nvme-misc-fixes-v1-3-40c586581171@kernel.org>
Date: Tue, 28 Jan 2025 17:34:48 +0100
From: Daniel Wagner <wagi@...nel.org>
To: Keith Busch <kbusch@...nel.org>, Jens Axboe <axboe@...nel.dk>,
Christoph Hellwig <hch@....de>, Sagi Grimberg <sagi@...mberg.me>,
Ming Lei <ming.lei@...hat.com>
Cc: James Smart <james.smart@...adcom.com>, Hannes Reinecke <hare@...e.de>,
linux-nvme@...ts.infradead.org, linux-kernel@...r.kernel.org,
linux-block@...r.kernel.org, Daniel Wagner <wagi@...nel.org>
Subject: [PATCH 3/3] blk-mq: fix wait condition for tagset wait completed
check
blk_mq_tagset_count_completed_reqs returns the number of completed
requests. The only user of this function is
blk_mq_tagset_wait_completed_request which wants to know how many
request are not yet completed. Thus return the number of in flight
requests and terminate the wait loop when there is no inflight request.
Fixes: f9934a80f91d ("blk-mq: introduce blk_mq_tagset_wait_completed_request()")
Cc: Ming Lei <ming.lei@...hat.com>
Signed-off-by: Daniel Wagner <wagi@...nel.org>
---
block/blk-mq-tag.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/block/blk-mq-tag.c b/block/blk-mq-tag.c
index b9f417d980b46d54b74dec8adcb5b04e6a78635c..3ce46afb65e3c3de9f11ca440bf0f335f21d0998 100644
--- a/block/blk-mq-tag.c
+++ b/block/blk-mq-tag.c
@@ -450,11 +450,11 @@ void blk_mq_tagset_busy_iter(struct blk_mq_tag_set *tagset,
}
EXPORT_SYMBOL(blk_mq_tagset_busy_iter);
-static bool blk_mq_tagset_count_completed_rqs(struct request *rq, void *data)
+static bool blk_mq_tagset_count_inflight_rqs(struct request *rq, void *data)
{
unsigned *count = data;
- if (blk_mq_request_completed(rq))
+ if (blk_mq_rq_state(rq) == MQ_RQ_IN_FLIGHT)
(*count)++;
return true;
}
@@ -472,7 +472,7 @@ void blk_mq_tagset_wait_completed_request(struct blk_mq_tag_set *tagset)
unsigned count = 0;
blk_mq_tagset_busy_iter(tagset,
- blk_mq_tagset_count_completed_rqs, &count);
+ blk_mq_tagset_count_inflight_rqs, &count);
if (!count)
break;
msleep(5);
--
2.48.1
Powered by blists - more mailing lists