]> www.infradead.org Git - users/hch/misc.git/commitdiff
mm: fix shrink nr.unqueued_dirty counter issue
authorZhiguo Jiang <justinjiang@vivo.com>
Fri, 12 Jan 2024 01:23:52 +0000 (09:23 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Wed, 6 Nov 2024 00:56:24 +0000 (16:56 -0800)
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 <justinjiang@vivo.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/vmscan.c

index 28ba2b06fc7dc25c2b34402ba9c7128607dc8506..20dd72c98813d20f3f268140bc173a0c7b42eb7d 100644 (file)
@@ -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);
 
                /*