int low, int high, int migratetype)
 {
        unsigned long size = 1 << high;
+       unsigned long nr_added = 0;
 
        while (high > low) {
                high--;
                if (set_page_guard(zone, &page[size], high))
                        continue;
 
-               add_to_free_list(&page[size], zone, high, migratetype, false);
+               __add_to_free_list(&page[size], zone, high, migratetype, false);
                set_buddy_order(&page[size], high);
+               nr_added += size;
        }
+       account_freepages(zone, nr_added, migratetype);
 }
 
 static void check_new_page_bad(struct page *page)