aboutsummaryrefslogtreecommitdiffstats
path: root/mm/page_isolation.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/page_isolation.c')
-rw-r--r--mm/page_isolation.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/mm/page_isolation.c b/mm/page_isolation.c
index 3ca1716471bc..345643b85bd4 100644
--- a/mm/page_isolation.c
+++ b/mm/page_isolation.c
@@ -77,11 +77,12 @@ int set_migratetype_isolate(struct page *page)
77out: 77out:
78 if (!ret) { 78 if (!ret) {
79 unsigned long nr_pages; 79 unsigned long nr_pages;
80 int migratetype = get_pageblock_migratetype(page);
80 81
81 set_pageblock_isolate(page); 82 set_pageblock_isolate(page);
82 nr_pages = move_freepages_block(zone, page, MIGRATE_ISOLATE); 83 nr_pages = move_freepages_block(zone, page, MIGRATE_ISOLATE);
83 84
84 __mod_zone_page_state(zone, NR_FREE_PAGES, -nr_pages); 85 __mod_zone_freepage_state(zone, -nr_pages, migratetype);
85 } 86 }
86 87
87 spin_unlock_irqrestore(&zone->lock, flags); 88 spin_unlock_irqrestore(&zone->lock, flags);
@@ -100,7 +101,7 @@ void unset_migratetype_isolate(struct page *page, unsigned migratetype)
100 if (get_pageblock_migratetype(page) != MIGRATE_ISOLATE) 101 if (get_pageblock_migratetype(page) != MIGRATE_ISOLATE)
101 goto out; 102 goto out;
102 nr_pages = move_freepages_block(zone, page, migratetype); 103 nr_pages = move_freepages_block(zone, page, migratetype);
103 __mod_zone_page_state(zone, NR_FREE_PAGES, nr_pages); 104 __mod_zone_freepage_state(zone, nr_pages, migratetype);
104 restore_pageblock_isolate(page, migratetype); 105 restore_pageblock_isolate(page, migratetype);
105out: 106out:
106 spin_unlock_irqrestore(&zone->lock, flags); 107 spin_unlock_irqrestore(&zone->lock, flags);