cgroup: pass struct mem_cgroup instead of struct cgroup to socket memcg
authorGlauber Costa <glommer@parallels.com>
Mon, 9 Apr 2012 22:36:33 +0000 (19:36 -0300)
committerTejun Heo <tj@kernel.org>
Tue, 10 Apr 2012 17:04:07 +0000 (10:04 -0700)
commit1d62e43657c63a858560c98069706c705d20505d
tree8b55403e0cf1efaab0c0fd7a2e53751dd21f1ebd
parent48ddbe194623ae089cc0576e60363f2d2e85662a
cgroup: pass struct mem_cgroup instead of struct cgroup to socket memcg

The only reason cgroup was used, was to be consistent with the populate()
interface. Now that we're getting rid of it, not only we no longer need
it, but we also *can't* call it this way.

Since we will no longer rely on populate(), this will be called from
create(). During create, the association between struct mem_cgroup
and struct cgroup does not yet exist, since cgroup internals hasn't
yet initialized its bookkeeping. This means we would not be able
to draw the memcg pointer from the cgroup pointer in these
functions, which is highly undesirable.

Signed-off-by: Glauber Costa <glommer@parallels.com>
Acked-by: Kamezawa Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
CC: Li Zefan <lizefan@huawei.com>
CC: Johannes Weiner <hannes@cmpxchg.org>
CC: Michal Hocko <mhocko@suse.cz>
include/net/sock.h
include/net/tcp_memcontrol.h
mm/memcontrol.c
net/core/sock.c
net/ipv4/tcp_memcontrol.c