summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mm/compaction.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/mm/compaction.c b/mm/compaction.c
index ce6293bf9c4a..767b0815c874 100644
--- a/mm/compaction.c
+++ b/mm/compaction.c
@@ -1528,6 +1528,10 @@ static void fast_isolate_freepages(struct compact_control *cc)
spin_unlock_irqrestore(&cc->zone->lock, flags);
+ /* Skip fast search if enough freepages isolated */
+ if (cc->nr_freepages >= cc->nr_migratepages)
+ break;
+
/*
* Smaller scan on next order so the total scan is related
* to freelist_scan_limit.