Commit bbc251f3 authored by Zhiguo Jiang's avatar Zhiguo Jiang Committed by Andrew Morton
Browse files

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: default avatarZhiguo Jiang <justinjiang@vivo.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent 5059aa63
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -5990,7 +5990,8 @@ static void shrink_node(pg_data_t *pgdat, struct scan_control *sc)
			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);

		/*