diff --git a/mm/vmscan.c b/mm/vmscan.c index 786af103e304..ae379855173f 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -2965,6 +2965,13 @@ static unsigned long balance_pgdat(pg_data_t *pgdat, int order, pgdat_needs_compaction = false; } + /* + * If we're getting trouble reclaiming, start doing writepage + * even in laptop mode. + */ + if (sc.priority < DEF_PRIORITY - 2) + sc.may_writepage = 1; + /* * Now scan the zone in the dma->highmem direction, stopping * at the last zone which needs scanning. @@ -3036,13 +3043,6 @@ static unsigned long balance_pgdat(pg_data_t *pgdat, int order, raise_priority = false; } - /* - * If we're getting trouble reclaiming, start doing - * writepage even in laptop mode. - */ - if (sc.priority < DEF_PRIORITY - 2) - sc.may_writepage = 1; - if (!zone_reclaimable(zone)) { if (end_zone && end_zone == i) end_zone--;