|
@@ -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.
|