[prev in list] [next in list] [prev in thread] [next in thread] 

List:       dm-devel
Subject:    [PATCH 4/5] dm vdo block-map: optimize enter_zone_read_only_mode
From:       Matthew Sakai <msakai () redhat ! com>
Date:       2023-11-20 22:29:19
Message-ID: fbf9ab343410e6bd79d9e4225d6e30d3431839bb.1700516271.git.msakai () redhat ! com
[Download RAW message or body]

From: Mike Snitzer <snitzer@kernel.org>

Rather than incrementally dequeue from the zone->flush_waiters
vdo_wait_queue, simply re-initialize it.

Reviewed-by: Ken Raeburn <raeburn@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
Signed-off-by: Matthew Sakai <msakai@redhat.com>
---
 drivers/md/dm-vdo/block-map.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/md/dm-vdo/block-map.c b/drivers/md/dm-vdo/block-map.c
index a1f2c9d38192..7f9c4bc05f02 100644
--- a/drivers/md/dm-vdo/block-map.c
+++ b/drivers/md/dm-vdo/block-map.c
@@ -641,12 +641,10 @@ static void enter_zone_read_only_mode(struct block_map_zone *zone, int result)
 	vdo_enter_read_only_mode(zone->block_map->vdo, result);
 
 	/*
-	 * We are in read-only mode, so we won't ever write any page out. Just take all waiters off
-	 * the queue so the zone can drain.
+	 * We are in read-only mode, so we won't ever write any page out.
+	 * Just take all waiters off the waitq so the zone can drain.
 	 */
-	while (vdo_waitq_has_waiters(&zone->flush_waiters))
-		vdo_waitq_dequeue_next_waiter(&zone->flush_waiters);
-
+	vdo_waitq_init(&zone->flush_waiters);
 	check_for_drain_complete(zone);
 }
 
-- 
2.42.0


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic