Commit 4a3b666e authored by Jakob Koschel's avatar Jakob Koschel Committed by Jens Axboe
Browse files

block: use dedicated list iterator variable

To move the list iterator variable into the list_for_each_entry_*()
macro in the future it should be avoided to use the list iterator
variable after the loop body.

To *never* use the list iterator variable after the loop it was
concluded to use a separate iterator variable instead of a
found boolean [1].

Link: https://lore.kernel.org/all/CAHk-=wgRr_D8CB-D9Kg-c=EHreAsk5SqXPwr9Y7k9sA6cWXJ6w@mail.gmail.com/

 [1]
Signed-off-by: default avatarJakob Koschel <jakobkoschel@gmail.com>
Link: https://lore.kernel.org/r/20220331091218.641532-1-jakobkoschel@gmail.com


[axboe: move lookup to where return value is checked]
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent d1868328
Loading
Loading
Loading
Loading
+16 −9
Original line number Diff line number Diff line
@@ -4448,21 +4448,28 @@ static bool blk_mq_elv_switch_none(struct list_head *head,
	return true;
}

static void blk_mq_elv_switch_back(struct list_head *head,
static struct blk_mq_qe_pair *blk_lookup_qe_pair(struct list_head *head,
						struct request_queue *q)
{
	struct blk_mq_qe_pair *qe;
	struct elevator_type *t = NULL;

	list_for_each_entry(qe, head, node)
		if (qe->q == q) {
			t = qe->type;
			break;
		if (qe->q == q)
			return qe;

	return NULL;
}

	if (!t)
		return;
static void blk_mq_elv_switch_back(struct list_head *head,
				  struct request_queue *q)
{
	struct blk_mq_qe_pair *qe;
	struct elevator_type *t;

	qe = blk_lookup_qe_pair(head, q);
	if (!qe)
		return;
	t = qe->type;
	list_del(&qe->node);
	kfree(qe);