]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blobdiff - mm/filemap.c
cpuset,mm: fix no node to alloc memory when changing cpuset's mems
[mirror_ubuntu-zesty-kernel.git] / mm / filemap.c
index d6f4f073836e2af566385bff6b366cce28477547..88d719665a28e8f28b66a9fadffa933ae46b1875 100644 (file)
@@ -461,9 +461,15 @@ EXPORT_SYMBOL_GPL(add_to_page_cache_lru);
 #ifdef CONFIG_NUMA
 struct page *__page_cache_alloc(gfp_t gfp)
 {
+       int n;
+       struct page *page;
+
        if (cpuset_do_page_mem_spread()) {
-               int n = cpuset_mem_spread_node();
-               return alloc_pages_exact_node(n, gfp, 0);
+               get_mems_allowed();
+               n = cpuset_mem_spread_node();
+               page = alloc_pages_exact_node(n, gfp, 0);
+               put_mems_allowed();
+               return page;
        }
        return alloc_pages(gfp, 0);
 }