From: KAMEZAWA Hiroyuki <[email protected]> 4b53433468 ("memcg: clean up try_charge main loop") removes a cancel of charge at case: memory charge-> success. mem+swap charge-> failure.
This leaks usage of memory. Fix it. Signed-off-by: KAMEZAWA Hiroyuki <[email protected]> Reviewed-by: Johannes Weiner <[email protected]> Acked-by: Daisuke Nishimura <[email protected]> Cc: Balbir Singh <[email protected]> Cc: <[email protected]> [2.6.36+] Signed-off-by: Andrew Morton <[email protected]> --- mm/memcontrol.c | 1 + 1 file changed, 1 insertion(+) diff -puN mm/memcontrol.c~memcg-fix-account-leak-at-failure-of-memsw-acconting mm/memcontrol.c --- a/mm/memcontrol.c~memcg-fix-account-leak-at-failure-of-memsw-acconting +++ a/mm/memcontrol.c @@ -1832,6 +1832,7 @@ static int __mem_cgroup_do_charge(struct if (likely(!ret)) return CHARGE_OK; + res_counter_uncharge(&mem->res, csize); mem_over_limit = mem_cgroup_from_res_counter(fail_res, memsw); flags |= MEM_CGROUP_RECLAIM_NOSWAP; } else _ _______________________________________________ stable mailing list [email protected] http://linux.kernel.org/mailman/listinfo/stable
