|
@@ -3653,8 +3653,6 @@ static int mem_cgroup_force_empty_list(struct mem_cgroup *memcg,
|
|
pc = lookup_page_cgroup(page);
|
|
pc = lookup_page_cgroup(page);
|
|
|
|
|
|
ret = mem_cgroup_move_parent(page, pc, memcg, GFP_KERNEL);
|
|
ret = mem_cgroup_move_parent(page, pc, memcg, GFP_KERNEL);
|
|
- if (ret == -ENOMEM || ret == -EINTR)
|
|
|
|
- break;
|
|
|
|
|
|
|
|
if (ret == -EBUSY || ret == -EINVAL) {
|
|
if (ret == -EBUSY || ret == -EINVAL) {
|
|
/* found lock contention or "pc" is obsolete. */
|
|
/* found lock contention or "pc" is obsolete. */
|
|
@@ -3711,9 +3709,6 @@ move_account:
|
|
}
|
|
}
|
|
mem_cgroup_end_move(memcg);
|
|
mem_cgroup_end_move(memcg);
|
|
memcg_oom_recover(memcg);
|
|
memcg_oom_recover(memcg);
|
|
- /* it seems parent cgroup doesn't have enough mem */
|
|
|
|
- if (ret == -ENOMEM)
|
|
|
|
- goto try_to_free;
|
|
|
|
cond_resched();
|
|
cond_resched();
|
|
/* "ret" should also be checked to ensure all lists are empty. */
|
|
/* "ret" should also be checked to ensure all lists are empty. */
|
|
} while (res_counter_read_u64(&memcg->res, RES_USAGE) > 0 || ret);
|
|
} while (res_counter_read_u64(&memcg->res, RES_USAGE) > 0 || ret);
|