|
@@ -512,19 +512,20 @@ int __ref online_pages(unsigned long pfn, unsigned long nr_pages)
|
|
|
|
|
|
zone->present_pages += onlined_pages;
|
|
|
zone->zone_pgdat->node_present_pages += onlined_pages;
|
|
|
- if (need_zonelists_rebuild)
|
|
|
- build_all_zonelists(NULL, zone);
|
|
|
- else
|
|
|
- zone_pcp_update(zone);
|
|
|
+ if (onlined_pages) {
|
|
|
+ node_set_state(zone_to_nid(zone), N_HIGH_MEMORY);
|
|
|
+ if (need_zonelists_rebuild)
|
|
|
+ build_all_zonelists(NULL, zone);
|
|
|
+ else
|
|
|
+ zone_pcp_update(zone);
|
|
|
+ }
|
|
|
|
|
|
mutex_unlock(&zonelists_mutex);
|
|
|
|
|
|
init_per_zone_wmark_min();
|
|
|
|
|
|
- if (onlined_pages) {
|
|
|
+ if (onlined_pages)
|
|
|
kswapd_run(zone_to_nid(zone));
|
|
|
- node_set_state(zone_to_nid(zone), N_HIGH_MEMORY);
|
|
|
- }
|
|
|
|
|
|
vm_total_pages = nr_free_pagecache_pages();
|
|
|
|