|
@@ -680,9 +680,12 @@ static void free_pcppages_bulk(struct zone *zone, int count,
|
|
|
int migratetype = 0;
|
|
|
int batch_free = 0;
|
|
|
int to_free = count;
|
|
|
+ unsigned long nr_scanned;
|
|
|
|
|
|
spin_lock(&zone->lock);
|
|
|
- zone->pages_scanned = 0;
|
|
|
+ nr_scanned = zone_page_state(zone, NR_PAGES_SCANNED);
|
|
|
+ if (nr_scanned)
|
|
|
+ __mod_zone_page_state(zone, NR_PAGES_SCANNED, -nr_scanned);
|
|
|
|
|
|
while (to_free) {
|
|
|
struct page *page;
|
|
@@ -731,8 +734,11 @@ static void free_one_page(struct zone *zone,
|
|
|
unsigned int order,
|
|
|
int migratetype)
|
|
|
{
|
|
|
+ unsigned long nr_scanned;
|
|
|
spin_lock(&zone->lock);
|
|
|
- zone->pages_scanned = 0;
|
|
|
+ nr_scanned = zone_page_state(zone, NR_PAGES_SCANNED);
|
|
|
+ if (nr_scanned)
|
|
|
+ __mod_zone_page_state(zone, NR_PAGES_SCANNED, -nr_scanned);
|
|
|
|
|
|
__free_one_page(page, pfn, zone, order, migratetype);
|
|
|
if (unlikely(!is_migrate_isolate(migratetype)))
|
|
@@ -3248,7 +3254,7 @@ void show_free_areas(unsigned int filter)
|
|
|
K(zone_page_state(zone, NR_BOUNCE)),
|
|
|
K(zone_page_state(zone, NR_FREE_CMA_PAGES)),
|
|
|
K(zone_page_state(zone, NR_WRITEBACK_TEMP)),
|
|
|
- zone->pages_scanned,
|
|
|
+ K(zone_page_state(zone, NR_PAGES_SCANNED)),
|
|
|
(!zone_reclaimable(zone) ? "yes" : "no")
|
|
|
);
|
|
|
printk("lowmem_reserve[]:");
|