diff --git a/mm/compaction.c b/mm/compaction.c index 75f4c1206d00..eaf0a925ff26 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -1362,7 +1362,7 @@ unsigned long try_to_compact_pages(struct zonelist *zonelist, goto break_loop; } - if (mode != MIGRATE_ASYNC) { + if (mode != MIGRATE_ASYNC && status == COMPACT_COMPLETE) { /* * We think that allocation won't succeed in this zone * so we defer compaction there. If it ends up