From 0392a57048b25502e3be427754f1ebdf6e11ad19 Mon Sep 17 00:00:00 2001 From: Hugh Dickins Date: Tue, 4 Mar 2008 14:29:12 -0800 Subject: [PATCH] --- yaml --- r: 86824 b: refs/heads/master c: 6d48ff8bcfd403ec8d3ef7a56538ea9e6f773b9c h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/mm/memcontrol.c | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index 2d17e9368dbc..a9d0105545b9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b9c565d5a29a795f970b4a1340393d8fc6722fb9 +refs/heads/master: 6d48ff8bcfd403ec8d3ef7a56538ea9e6f773b9c diff --git a/trunk/mm/memcontrol.c b/trunk/mm/memcontrol.c index 13e9e7d8e49e..66d0e84cefa6 100644 --- a/trunk/mm/memcontrol.c +++ b/trunk/mm/memcontrol.c @@ -665,15 +665,15 @@ void mem_cgroup_uncharge_page(struct page *page) page_assign_page_cgroup(page, NULL); unlock_page_cgroup(page); - mem = pc->mem_cgroup; - css_put(&mem->css); - res_counter_uncharge(&mem->res, PAGE_SIZE); - mz = page_cgroup_zoneinfo(pc); spin_lock_irqsave(&mz->lru_lock, flags); __mem_cgroup_remove_list(pc); spin_unlock_irqrestore(&mz->lru_lock, flags); + mem = pc->mem_cgroup; + res_counter_uncharge(&mem->res, PAGE_SIZE); + css_put(&mem->css); + kfree(pc); return; } @@ -774,9 +774,9 @@ static void mem_cgroup_force_empty_list(struct mem_cgroup *mem, if (page_get_page_cgroup(page) == pc) { page_assign_page_cgroup(page, NULL); unlock_page_cgroup(page); - css_put(&mem->css); - res_counter_uncharge(&mem->res, PAGE_SIZE); __mem_cgroup_remove_list(pc); + res_counter_uncharge(&mem->res, PAGE_SIZE); + css_put(&mem->css); kfree(pc); } else { /* racing uncharge: let page go then retry */