From 599b09114fdb34751089829f40bcc2bb106ea420 Mon Sep 17 00:00:00 2001 From: Balbir Singh Date: Thu, 7 Feb 2008 00:14:18 -0800 Subject: [PATCH] --- yaml --- r: 83784 b: refs/heads/master c: ac44d354d5c9ced49b1165d6496f134501134219 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/mm/memcontrol.c | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 72e08db45140..dd298c6c90d0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 217bc3194d57150549e9234e6ddfee30de28cc78 +refs/heads/master: ac44d354d5c9ced49b1165d6496f134501134219 diff --git a/trunk/mm/memcontrol.c b/trunk/mm/memcontrol.c index 975e89935d52..160101a05b4d 100644 --- a/trunk/mm/memcontrol.c +++ b/trunk/mm/memcontrol.c @@ -456,16 +456,20 @@ int mem_cgroup_charge(struct page *page, struct mm_struct *mm, int mem_cgroup_cache_charge(struct page *page, struct mm_struct *mm, gfp_t gfp_mask) { + int ret = 0; struct mem_cgroup *mem; if (!mm) mm = &init_mm; + rcu_read_lock(); mem = rcu_dereference(mm->mem_cgroup); + css_get(&mem->css); + rcu_read_unlock(); if (mem->control_type == MEM_CGROUP_TYPE_ALL) - return mem_cgroup_charge_common(page, mm, gfp_mask, + ret = mem_cgroup_charge_common(page, mm, gfp_mask, MEM_CGROUP_CHARGE_TYPE_CACHE); - else - return 0; + css_put(&mem->css); + return ret; } /*