memcg swap: use mem_cgroup_uncharge_swap()
That stuff __mem_cgroup_commit_charge_swapin() does with a swap entry, it has a name and even a declaration: just use mem_cgroup_uncharge_swap(). Signed-off-by: Hugh Dickins <hughd@google.com> Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp> Acked-by: Johannes Weiner <hannes@cmpxchg.org> Cc: Michal Hocko <mhocko@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
e91cbb4253
Коммит
86493009d3
|
@ -2855,24 +2855,7 @@ __mem_cgroup_commit_charge_swapin(struct page *page, struct mem_cgroup *memcg,
|
||||||
*/
|
*/
|
||||||
if (do_swap_account && PageSwapCache(page)) {
|
if (do_swap_account && PageSwapCache(page)) {
|
||||||
swp_entry_t ent = {.val = page_private(page)};
|
swp_entry_t ent = {.val = page_private(page)};
|
||||||
struct mem_cgroup *swap_memcg;
|
mem_cgroup_uncharge_swap(ent);
|
||||||
unsigned short id;
|
|
||||||
|
|
||||||
id = swap_cgroup_record(ent, 0);
|
|
||||||
rcu_read_lock();
|
|
||||||
swap_memcg = mem_cgroup_lookup(id);
|
|
||||||
if (swap_memcg) {
|
|
||||||
/*
|
|
||||||
* This recorded memcg can be obsolete one. So, avoid
|
|
||||||
* calling css_tryget
|
|
||||||
*/
|
|
||||||
if (!mem_cgroup_is_root(swap_memcg))
|
|
||||||
res_counter_uncharge(&swap_memcg->memsw,
|
|
||||||
PAGE_SIZE);
|
|
||||||
mem_cgroup_swap_statistics(swap_memcg, false);
|
|
||||||
mem_cgroup_put(swap_memcg);
|
|
||||||
}
|
|
||||||
rcu_read_unlock();
|
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* At swapin, we may charge account against cgroup which has no tasks.
|
* At swapin, we may charge account against cgroup which has no tasks.
|
||||||
|
|
Загрузка…
Ссылка в новой задаче