mirror of
https://github.com/torvalds/linux.git
synced 2024-12-04 01:51:34 +00:00
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:
parent
e91cbb4253
commit
86493009d3
@ -2855,24 +2855,7 @@ __mem_cgroup_commit_charge_swapin(struct page *page, struct mem_cgroup *memcg,
|
||||
*/
|
||||
if (do_swap_account && PageSwapCache(page)) {
|
||||
swp_entry_t ent = {.val = page_private(page)};
|
||||
struct mem_cgroup *swap_memcg;
|
||||
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();
|
||||
mem_cgroup_uncharge_swap(ent);
|
||||
}
|
||||
/*
|
||||
* At swapin, we may charge account against cgroup which has no tasks.
|
||||
|
Loading…
Reference in New Issue
Block a user