@@ -772,20 +772,13 @@ EXPORT_SYMBOL_GPL(__online_page_set_limits);
772772
773773void __online_page_increment_counters (struct page * page )
774774{
775- totalram_pages ++ ;
776-
777- #ifdef CONFIG_HIGHMEM
778- if (PageHighMem (page ))
779- totalhigh_pages ++ ;
780- #endif
775+ adjust_managed_page_count (page , 1 );
781776}
782777EXPORT_SYMBOL_GPL (__online_page_increment_counters );
783778
784779void __online_page_free (struct page * page )
785780{
786- ClearPageReserved (page );
787- init_page_count (page );
788- __free_page (page );
781+ __free_reserved_page (page );
789782}
790783EXPORT_SYMBOL_GPL (__online_page_free );
791784
@@ -983,7 +976,6 @@ int __ref online_pages(unsigned long pfn, unsigned long nr_pages, int online_typ
983976 return ret ;
984977 }
985978
986- zone -> managed_pages += onlined_pages ;
987979 zone -> present_pages += onlined_pages ;
988980
989981 pgdat_resize_lock (zone -> zone_pgdat , & flags );
@@ -1572,15 +1564,13 @@ static int __ref __offline_pages(unsigned long start_pfn,
15721564 /* reset pagetype flags and makes migrate type to be MOVABLE */
15731565 undo_isolate_page_range (start_pfn , end_pfn , MIGRATE_MOVABLE );
15741566 /* removal success */
1575- zone -> managed_pages -= offlined_pages ;
1567+ adjust_managed_page_count ( pfn_to_page ( start_pfn ), - offlined_pages ) ;
15761568 zone -> present_pages -= offlined_pages ;
15771569
15781570 pgdat_resize_lock (zone -> zone_pgdat , & flags );
15791571 zone -> zone_pgdat -> node_present_pages -= offlined_pages ;
15801572 pgdat_resize_unlock (zone -> zone_pgdat , & flags );
15811573
1582- totalram_pages -= offlined_pages ;
1583-
15841574 init_per_zone_wmark_min ();
15851575
15861576 if (!populated_zone (zone )) {
0 commit comments