diff options
author | Vladimir Davydov <vdavydov@parallels.com> | 2015-01-08 14:32:37 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-01-08 15:10:52 -0800 |
commit | 4bdfc1c4a943ce8707675ad510ea1076c9e8e528 (patch) | |
tree | 83451949e0afdfe0f2456977ac3d90b861ddfc6e /mm/backing-dev.c | |
parent | 24d404dc10b903da271e943a0f6b032dcbd177d8 (diff) | |
download | linux-stable-4bdfc1c4a943ce8707675ad510ea1076c9e8e528.tar.gz linux-stable-4bdfc1c4a943ce8707675ad510ea1076c9e8e528.tar.bz2 linux-stable-4bdfc1c4a943ce8707675ad510ea1076c9e8e528.zip |
memcg: fix destination cgroup leak on task charges migration
We are supposed to take one css reference per each memory page and per
each swap entry accounted to a memory cgroup. However, during task
charges migration we take a reference to the destination cgroup twice
per each swap entry: first in mem_cgroup_do_precharge()->try_charge()
and then in mem_cgroup_move_swap_account(), permanently leaking the
destination cgroup.
The hunk taking the second reference seems to be a leftover from the
pre-00501b531c472 ("mm: memcontrol: rewrite charge API") era. Remove it
to fix the leak.
Fixes: e8ea14cc6ead (mm: memcontrol: take a css reference for each charged page)
Signed-off-by: Vladimir Davydov <vdavydov@parallels.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Michal Hocko <mhocko@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/backing-dev.c')
0 files changed, 0 insertions, 0 deletions