diff options
Diffstat (limited to 'mm/page_alloc.c')
-rw-r--r-- | mm/page_alloc.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 181dc593962b..616a2c956b4b 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
@@ -583,9 +583,11 @@ static inline void __free_one_page(struct page *page, | |||
583 | */ | 583 | */ |
584 | if (page_is_guard(buddy)) { | 584 | if (page_is_guard(buddy)) { |
585 | clear_page_guard_flag(buddy); | 585 | clear_page_guard_flag(buddy); |
586 | set_page_private(page, 0); | 586 | set_page_private(buddy, 0); |
587 | __mod_zone_freepage_state(zone, 1 << order, | 587 | if (!is_migrate_isolate(migratetype)) { |
588 | migratetype); | 588 | __mod_zone_freepage_state(zone, 1 << order, |
589 | migratetype); | ||
590 | } | ||
589 | } else { | 591 | } else { |
590 | list_del(&buddy->lru); | 592 | list_del(&buddy->lru); |
591 | zone->free_area[order].nr_free--; | 593 | zone->free_area[order].nr_free--; |