diff options
Diffstat (limited to 'mm/vmscan.c')
-rw-r--r-- | mm/vmscan.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/mm/vmscan.c b/mm/vmscan.c index 49f15ef0a99a..33c332bbab73 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -2817,7 +2817,7 @@ loop_again: testorder = 0; if ((buffer_heads_over_limit && is_highmem_idx(i)) || - !zone_watermark_ok_safe(zone, order, + !zone_watermark_ok_safe(zone, testorder, high_wmark_pages(zone) + balance_gap, end_zone, 0)) { shrink_zone(priority, zone, &sc); @@ -2946,7 +2946,8 @@ out: continue; /* Would compaction fail due to lack of free memory? */ - if (compaction_suitable(zone, order) == COMPACT_SKIPPED) + if (COMPACTION_BUILD && + compaction_suitable(zone, order) == COMPACT_SKIPPED) goto loop_again; /* Confirm the zone is balanced for order-0 */ |