memcg: fix account leak at failure of memsw acconting
commit 01c88e2d6b7330c0cc5867fe2297e7d826e1337d upstream. Commit 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 <kamezawa.hiroyu@jp.fujitsu.com> Reviewed-by: Johannes Weiner <hannes@cmpxchg.org> Acked-by: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp> Cc: Balbir Singh <balbir@in.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
f7095bc222
commit
e0b1361245
@ -1842,6 +1842,7 @@ static int __mem_cgroup_do_charge(struct mem_cgroup *mem, gfp_t gfp_mask,
|
||||
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
|
||||
|
Loading…
x
Reference in New Issue
Block a user