diff options
Diffstat (limited to 'mm/page_isolation.c')
-rw-r--r-- | mm/page_isolation.c | 5 |
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) | |||
77 | out: | 77 | out: |
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); |
105 | out: | 106 | out: |
106 | spin_unlock_irqrestore(&zone->lock, flags); | 107 | spin_unlock_irqrestore(&zone->lock, flags); |