diff --git a/[refs] b/[refs] index 5a0fd9113cc0..1f650d302a49 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1e50cc9022d6c0b9175d804573e3f401d00d1381 +refs/heads/master: c0bd3f63ce01a1757dbce6373122a05fbf99ced7 diff --git a/trunk/mm/memcontrol.c b/trunk/mm/memcontrol.c index e44fb0fbb80e..575203ae2109 100644 --- a/trunk/mm/memcontrol.c +++ b/trunk/mm/memcontrol.c @@ -1024,9 +1024,7 @@ static struct mem_cgroup *try_get_mem_cgroup_from_swapcache(struct page *page) return NULL; pc = lookup_page_cgroup(page); - /* - * Used bit of swapcache is solid under page lock. - */ + lock_page_cgroup(pc); if (PageCgroupUsed(pc)) { mem = pc->mem_cgroup; if (mem && !css_tryget(&mem->css)) @@ -1040,6 +1038,7 @@ static struct mem_cgroup *try_get_mem_cgroup_from_swapcache(struct page *page) mem = NULL; rcu_read_unlock(); } + unlock_page_cgroup(pc); return mem; }