]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - mm/vmscan.c
memcg: mem+swap controller core
[net-next-2.6.git] / mm / vmscan.c
index b07c48b09a93224f27b54a490c5beb857c744564..f63b20dd7714989f2f2fe389cf81771358b15d1d 100644 (file)
@@ -1661,7 +1661,8 @@ unsigned long try_to_free_pages(struct zonelist *zonelist, int order,
 #ifdef CONFIG_CGROUP_MEM_RES_CTLR
 
 unsigned long try_to_free_mem_cgroup_pages(struct mem_cgroup *mem_cont,
-                                               gfp_t gfp_mask)
+                                               gfp_t gfp_mask,
+                                          bool noswap)
 {
        struct scan_control sc = {
                .may_writepage = !laptop_mode,
@@ -1674,6 +1675,9 @@ unsigned long try_to_free_mem_cgroup_pages(struct mem_cgroup *mem_cont,
        };
        struct zonelist *zonelist;
 
+       if (noswap)
+               sc.may_swap = 0;
+
        sc.gfp_mask = (gfp_mask & GFP_RECLAIM_MASK) |
                        (GFP_HIGHUSER_MOVABLE & ~GFP_RECLAIM_MASK);
        zonelist = NODE_DATA(numa_node_id())->node_zonelists;