summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mm/memcontrol.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index 659b0c58f13..9bf5d7c8ede 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -709,17 +709,17 @@ static int __mem_cgroup_try_charge(struct mm_struct *mm,
* current usage of the cgroup before giving up
*
*/
- if (!do_swap_account &&
- res_counter_check_under_limit(&mem->res))
- continue;
- if (do_swap_account &&
- res_counter_check_under_limit(&mem->memsw))
- continue;
+ if (do_swap_account) {
+ if (res_counter_check_under_limit(&mem_over_limit->res) &&
+ res_counter_check_under_limit(&mem_over_limit->memsw))
+ continue;
+ } else if (res_counter_check_under_limit(&mem_over_limit->res))
+ continue;
if (!nr_retries--) {
if (oom) {
- mem_cgroup_out_of_memory(mem, gfp_mask);
- mem->last_oom_jiffies = jiffies;
+ mem_cgroup_out_of_memory(mem_over_limit, gfp_mask);
+ mem_over_limit->last_oom_jiffies = jiffies;
}
goto nomem;
}