From 08bf2ff1f0099ff4c6cb08d9b40b42801e29033a Mon Sep 17 00:00:00 2001 From: Zhiguo Jiang Date: Fri, 12 Jan 2024 09:23:52 +0800 Subject: [PATCH] mm: fix shrink nr.unqueued_dirty counter issue It is needed to ensure sc->nr.unqueued_dirty > 0, which can avoid setting PGDAT_DIRTY flag when sc->nr.unqueued_dirty and sc->nr.file_taken are both zero. Link: https://lkml.kernel.org/r/20240112012353.1387-1-justinjiang@vivo.com Signed-off-by: Zhiguo Jiang Signed-off-by: Andrew Morton --- mm/vmscan.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mm/vmscan.c b/mm/vmscan.c index 28ba2b06fc7d..20dd72c98813 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -5990,7 +5990,8 @@ again: set_bit(PGDAT_WRITEBACK, &pgdat->flags); /* Allow kswapd to start writing pages during reclaim.*/ - if (sc->nr.unqueued_dirty == sc->nr.file_taken) + if (sc->nr.unqueued_dirty && + sc->nr.unqueued_dirty == sc->nr.file_taken) set_bit(PGDAT_DIRTY, &pgdat->flags); /* -- 2.50.1