memcg: use rcu_dereference to access mm->owner
authorKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Tue, 21 Apr 2009 19:24:41 +0000 (12:24 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 21 Apr 2009 20:41:48 +0000 (13:41 -0700)
mm->owner should be accessed with rcu_dereference().

Reported-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Acked-by: Balbir Singh <balbir@linux.vnet.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/memcontrol.h

index 18146c980b68b33d5aafdd8403531f5548dd545a..a9e3b76aa8846d2b6172cfca09a15d6c0d2b4d83 100644 (file)
@@ -75,7 +75,7 @@ int mm_match_cgroup(const struct mm_struct *mm, const struct mem_cgroup *cgroup)
 {
        struct mem_cgroup *mem;
        rcu_read_lock();
-       mem = mem_cgroup_from_task((mm)->owner);
+       mem = mem_cgroup_from_task(rcu_dereference((mm)->owner));
        rcu_read_unlock();
        return cgroup == mem;
 }