]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - mm/memory_hotplug.c
nilfs2: remove resize from unsupported features list
[karo-tx-linux.git] / mm / memory_hotplug.c
index 9f646374e32f5ec7704b86ad653c2794037b830a..c46887b5a11eaa5bbe48008d16ad71bd37f7302f 100644 (file)
@@ -494,6 +494,14 @@ static pg_data_t __ref *hotadd_new_pgdat(int nid, u64 start)
        /* init node's zones as empty zones, we don't have any present pages.*/
        free_area_init_node(nid, zones_size, start_pfn, zholes_size);
 
+       /*
+        * The node we allocated has no zone fallback lists. For avoiding
+        * to access not-initialized zonelist, build here.
+        */
+       mutex_lock(&zonelists_mutex);
+       build_all_zonelists(NULL);
+       mutex_unlock(&zonelists_mutex);
+
        return pgdat;
 }
 
@@ -515,7 +523,7 @@ int mem_online_node(int nid)
 
        lock_memory_hotplug();
        pgdat = hotadd_new_pgdat(nid, 0);
-       if (pgdat) {
+       if (!pgdat) {
                ret = -ENOMEM;
                goto out;
        }