From: Andrew Morton Cc: Pavel Emelianov Cc: Balbir Singh Cc: Paul Menage Cc: Peter Zijlstra Cc: "Eric W. Biederman" Cc: Nick Piggin Cc: Kirill Korotaev Cc: Herbert Poetzl Cc: David Rientjes Cc: Vaidyanathan Srinivasan Signed-off-by: Andrew Morton --- include/linux/memcontrol.h | 2 +- mm/oom_kill.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff -puN include/linux/memcontrol.h~memory-controller-oom-handling-v7-vs-oom-killer-stuff include/linux/memcontrol.h --- a/include/linux/memcontrol.h~memory-controller-oom-handling-v7-vs-oom-killer-stuff +++ a/include/linux/memcontrol.h @@ -39,7 +39,7 @@ extern unsigned long mem_cgroup_isolate_ int mode, struct zone *z, struct mem_cgroup *mem_cont, int active); -extern void mem_cgroup_out_of_memory(struct mem_cgroup *mem); +extern void mem_cgroup_out_of_memory(struct mem_cgroup *mem, gfp_t gfp_mask); static inline void mem_cgroup_uncharge_page(struct page *page) { diff -puN mm/oom_kill.c~memory-controller-oom-handling-v7-vs-oom-killer-stuff mm/oom_kill.c --- a/mm/oom_kill.c~memory-controller-oom-handling-v7-vs-oom-killer-stuff +++ a/mm/oom_kill.c @@ -379,7 +379,7 @@ static int oom_kill_process(struct task_ } #ifdef CONFIG_CGROUP_MEM_CONT -void mem_cgroup_out_of_memory(struct mem_cgroup *mem) +void mem_cgroup_out_of_memory(struct mem_cgroup *mem, gfp_t gfp_mask) { unsigned long points = 0; struct task_struct *p; @@ -394,7 +394,8 @@ retry: if (!p) p = current; - if (oom_kill_process(p, points, "Memory cgroup out of memory")) + if (oom_kill_process(p, gfp_mask, 0, points, + "Memory cgroup out of memory")) goto retry; out: rcu_read_unlock(); _