diff options
Diffstat (limited to 'mm/memory_hotplug.c')
-rw-r--r-- | mm/memory_hotplug.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index b8731040b9f9..597d371329d3 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c | |||
@@ -512,19 +512,20 @@ int __ref online_pages(unsigned long pfn, unsigned long nr_pages) | |||
512 | 512 | ||
513 | zone->present_pages += onlined_pages; | 513 | zone->present_pages += onlined_pages; |
514 | zone->zone_pgdat->node_present_pages += onlined_pages; | 514 | zone->zone_pgdat->node_present_pages += onlined_pages; |
515 | if (need_zonelists_rebuild) | 515 | if (onlined_pages) { |
516 | build_all_zonelists(NULL, zone); | 516 | node_set_state(zone_to_nid(zone), N_HIGH_MEMORY); |
517 | else | 517 | if (need_zonelists_rebuild) |
518 | zone_pcp_update(zone); | 518 | build_all_zonelists(NULL, zone); |
519 | else | ||
520 | zone_pcp_update(zone); | ||
521 | } | ||
519 | 522 | ||
520 | mutex_unlock(&zonelists_mutex); | 523 | mutex_unlock(&zonelists_mutex); |
521 | 524 | ||
522 | init_per_zone_wmark_min(); | 525 | init_per_zone_wmark_min(); |
523 | 526 | ||
524 | if (onlined_pages) { | 527 | if (onlined_pages) |
525 | kswapd_run(zone_to_nid(zone)); | 528 | kswapd_run(zone_to_nid(zone)); |
526 | node_set_state(zone_to_nid(zone), N_HIGH_MEMORY); | ||
527 | } | ||
528 | 529 | ||
529 | vm_total_pages = nr_free_pagecache_pages(); | 530 | vm_total_pages = nr_free_pagecache_pages(); |
530 | 531 | ||