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>
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);
}