diff --git a/mm/page_alloc.c b/mm/page_alloc.c index d71f6366ba9d..b29b84509e8a 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -8617,8 +8617,10 @@ static int __alloc_contig_migrate_range(struct compact_control *cc, lru_cache_enable(); if (ret < 0) { - alloc_contig_dump_pages(&cc->migratepages); - page_pinner_mark_migration_failed_pages(&cc->migratepages); + if (ret == -EBUSY) { + alloc_contig_dump_pages(&cc->migratepages); + page_pinner_mark_migration_failed_pages(&cc->migratepages); + } putback_movable_pages(&cc->migratepages); return ret; }