|
@@ -772,20 +772,13 @@ EXPORT_SYMBOL_GPL(__online_page_set_limits);
|
|
|
|
|
|
void __online_page_increment_counters(struct page *page)
|
|
|
{
|
|
|
- totalram_pages++;
|
|
|
-
|
|
|
-#ifdef CONFIG_HIGHMEM
|
|
|
- if (PageHighMem(page))
|
|
|
- totalhigh_pages++;
|
|
|
-#endif
|
|
|
+ adjust_managed_page_count(page, 1);
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(__online_page_increment_counters);
|
|
|
|
|
|
void __online_page_free(struct page *page)
|
|
|
{
|
|
|
- ClearPageReserved(page);
|
|
|
- init_page_count(page);
|
|
|
- __free_page(page);
|
|
|
+ __free_reserved_page(page);
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(__online_page_free);
|
|
|
|
|
@@ -983,7 +976,6 @@ int __ref online_pages(unsigned long pfn, unsigned long nr_pages, int online_typ
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
- zone->managed_pages += onlined_pages;
|
|
|
zone->present_pages += onlined_pages;
|
|
|
|
|
|
pgdat_resize_lock(zone->zone_pgdat, &flags);
|
|
@@ -1572,15 +1564,13 @@ repeat:
|
|
|
/* reset pagetype flags and makes migrate type to be MOVABLE */
|
|
|
undo_isolate_page_range(start_pfn, end_pfn, MIGRATE_MOVABLE);
|
|
|
/* removal success */
|
|
|
- zone->managed_pages -= offlined_pages;
|
|
|
+ adjust_managed_page_count(pfn_to_page(start_pfn), -offlined_pages);
|
|
|
zone->present_pages -= offlined_pages;
|
|
|
|
|
|
pgdat_resize_lock(zone->zone_pgdat, &flags);
|
|
|
zone->zone_pgdat->node_present_pages -= offlined_pages;
|
|
|
pgdat_resize_unlock(zone->zone_pgdat, &flags);
|
|
|
|
|
|
- totalram_pages -= offlined_pages;
|
|
|
-
|
|
|
init_per_zone_wmark_min();
|
|
|
|
|
|
if (!populated_zone(zone)) {
|