Revert "netfilter: xt_qtaguid: Allow tracking loopback"
[firefly-linux-kernel-4.4.55.git] / mm / filemap.c
index b7d860390f34779836aaec1182fdd60c7a71a82f..10481ebd96c990b3802392e1d1760a5ef657b0f0 100644 (file)
@@ -516,10 +516,13 @@ struct page *__page_cache_alloc(gfp_t gfp)
        struct page *page;
 
        if (cpuset_do_page_mem_spread()) {
-               get_mems_allowed();
-               n = cpuset_mem_spread_node();
-               page = alloc_pages_exact_node(n, gfp, 0);
-               put_mems_allowed();
+               unsigned int cpuset_mems_cookie;
+               do {
+                       cpuset_mems_cookie = get_mems_allowed();
+                       n = cpuset_mem_spread_node();
+                       page = alloc_pages_exact_node(n, gfp, 0);
+               } while (!put_mems_allowed(cpuset_mems_cookie) && !page);
+
                return page;
        }
        return alloc_pages(gfp, 0);