All of lore.kernel.org
 help / color / mirror / Atom feed
From: chengming.zhou@linux.dev
To: axboe@kernel.dk, ming.lei@redhat.com, bvanassche@acm.org, hch@lst.de
Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
	zhouchengming@bytedance.com
Subject: [PATCH v3 1/6] blk-mq-tag: support queue filter in bt_tags_iter()
Date: Wed, 23 Aug 2023 23:17:58 +0800	[thread overview]
Message-ID: <20230823151803.926382-2-chengming.zhou@linux.dev> (raw)
In-Reply-To: <20230823151803.926382-1-chengming.zhou@linux.dev>

From: Chengming Zhou <zhouchengming@bytedance.com>

The only user of bt_for_each() is blk_mq_queue_tag_busy_iter(), which
need to filter queue when iterate the tags. In preparation of removing
bt_for_each(), support queue filter in bt_tags_iter().

Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Chengming Zhou <zhouchengming@bytedance.com>
---
 block/blk-mq-tag.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/block/blk-mq-tag.c b/block/blk-mq-tag.c
index cc57e2dd9a0b..3cf3cf72cd54 100644
--- a/block/blk-mq-tag.c
+++ b/block/blk-mq-tag.c
@@ -329,6 +329,7 @@ struct bt_tags_iter_data {
 	busy_tag_iter_fn *fn;
 	void *data;
 	unsigned int flags;
+	struct request_queue *q;
 };
 
 #define BT_TAG_ITER_RESERVED		(1 << 0)
@@ -357,9 +358,13 @@ static bool bt_tags_iter(struct sbitmap *bitmap, unsigned int bitnr, void *data)
 	if (!rq)
 		return true;
 
+	if (iter_data->q && iter_data->q != rq->q)
+		goto out;
+
 	if (!(iter_data->flags & BT_TAG_ITER_STARTED) ||
 	    blk_mq_request_started(rq))
 		ret = iter_data->fn(rq, iter_data->data);
+out:
 	if (!iter_static_rqs)
 		blk_mq_put_rq_ref(rq);
 	return ret;
-- 
2.41.0


  reply	other threads:[~2023-08-23 15:19 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-23 15:17 [PATCH v3 0/6] blk-mq-tag: remove bt_for_each() chengming.zhou
2023-08-23 15:17 ` chengming.zhou [this message]
2023-08-23 15:17 ` [PATCH v3 2/6] blk-mq-tag: introduce __blk_mq_tagset_busy_iter() chengming.zhou
2023-08-23 15:18 ` [PATCH v3 3/6] blk-mq-tag: remove bt_for_each() chengming.zhou
2023-08-23 15:18 ` [PATCH v3 4/6] blk-mq: delete superfluous check in iterate callback chengming.zhou
2023-08-23 15:18 ` [PATCH v3 5/6] blk-mq-tag: fix functions documentation chengming.zhou
2023-08-23 15:18 ` [PATCH v3 6/6] blk-mq-tag: fix blk_mq_queue_tag_busy_iter() documentation chengming.zhou
2023-08-23 15:26   ` Bart Van Assche
2023-09-02 14:58 ` [PATCH v3 0/6] blk-mq-tag: remove bt_for_each() Chengming Zhou
2023-09-03 23:51   ` Bart Van Assche
2023-09-04  2:25     ` Chengming Zhou

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230823151803.926382-2-chengming.zhou@linux.dev \
    --to=chengming.zhou@linux.dev \
    --cc=axboe@kernel.dk \
    --cc=bvanassche@acm.org \
    --cc=hch@lst.de \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ming.lei@redhat.com \
    --cc=zhouchengming@bytedance.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.