|
@@ -261,6 +261,7 @@ static isolate_migrate_t isolate_migratepages(struct zone *zone,
|
|
|
unsigned long last_pageblock_nr = 0, pageblock_nr;
|
|
|
unsigned long nr_scanned = 0, nr_isolated = 0;
|
|
|
struct list_head *migratelist = &cc->migratepages;
|
|
|
+ isolate_mode_t mode = ISOLATE_ACTIVE|ISOLATE_INACTIVE;
|
|
|
|
|
|
/* Do not scan outside zone boundaries */
|
|
|
low_pfn = max(cc->migrate_pfn, zone->zone_start_pfn);
|
|
@@ -348,9 +349,11 @@ static isolate_migrate_t isolate_migratepages(struct zone *zone,
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
+ if (!cc->sync)
|
|
|
+ mode |= ISOLATE_CLEAN;
|
|
|
+
|
|
|
/* Try isolate the page */
|
|
|
- if (__isolate_lru_page(page,
|
|
|
- ISOLATE_ACTIVE|ISOLATE_INACTIVE, 0) != 0)
|
|
|
+ if (__isolate_lru_page(page, mode, 0) != 0)
|
|
|
continue;
|
|
|
|
|
|
VM_BUG_ON(PageTransCompound(page));
|