diff --git a/mm/vmscan.c b/mm/vmscan.c index 667644e53b5c488ffa2c8e8bb90e7d0bc3bd5510..52832bedb2ed9eaacfedd97fbb7146e51755733a 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -2835,8 +2835,10 @@ static bool allow_direct_reclaim(pg_data_t *pgdat) for (i = 0; i <= ZONE_NORMAL; i++) { zone = &pgdat->node_zones[i]; - if (!managed_zone(zone) || - pgdat_reclaimable_pages(pgdat) == 0) + if (!managed_zone(zone)) + continue; + + if (!zone_reclaimable_pages(zone)) continue; pfmemalloc_reserve += min_wmark_pages(zone);