diff options
author | Tejun Heo <tj@kernel.org> | 2012-04-01 15:09:55 -0400 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2012-04-01 15:09:55 -0400 |
commit | 6bc103498f5fe512928496fc7802d639cc2d1d20 (patch) | |
tree | 15a9628ff89b48889ab7cf81822d689e0173ca2b /net/ipv4 | |
parent | af36f906c0f4c2ffa0482ecdf856a33dc88ae8c5 (diff) |
cgroup: convert memcg controller to the new cftype interface
Convert memcg to use the new cftype based interface. kmem support
abuses ->populate() for mem_cgroup_sockets_init() so it can't be
removed at the moment.
tcp_memcontrol is updated so that tcp_files[] is registered via a
__initcall. This change also allows removing the forward declaration
of tcp_files[]. Removed.
Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Acked-by: Li Zefan <lizf@cn.fujitsu.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Michal Hocko <mhocko@suse.cz>
Cc: Balbir Singh <bsingharora@gmail.com>
Cc: Glauber Costa <glommer@parallels.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Greg Thelen <gthelen@google.com>
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/tcp_memcontrol.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/net/ipv4/tcp_memcontrol.c b/net/ipv4/tcp_memcontrol.c index 4d3ee407d2d8..8f1753defa5c 100644 --- a/net/ipv4/tcp_memcontrol.c +++ b/net/ipv4/tcp_memcontrol.c | |||
@@ -6,8 +6,6 @@ | |||
6 | #include <linux/memcontrol.h> | 6 | #include <linux/memcontrol.h> |
7 | #include <linux/module.h> | 7 | #include <linux/module.h> |
8 | 8 | ||
9 | static struct cftype tcp_files[4]; /* XXX: will be removed soon */ | ||
10 | |||
11 | static inline struct tcp_memcontrol *tcp_from_cgproto(struct cg_proto *cg_proto) | 9 | static inline struct tcp_memcontrol *tcp_from_cgproto(struct cg_proto *cg_proto) |
12 | { | 10 | { |
13 | return container_of(cg_proto, struct tcp_memcontrol, cg_proto); | 11 | return container_of(cg_proto, struct tcp_memcontrol, cg_proto); |
@@ -36,7 +34,7 @@ int tcp_init_cgroup(struct cgroup *cgrp, struct cgroup_subsys *ss) | |||
36 | 34 | ||
37 | cg_proto = tcp_prot.proto_cgroup(memcg); | 35 | cg_proto = tcp_prot.proto_cgroup(memcg); |
38 | if (!cg_proto) | 36 | if (!cg_proto) |
39 | goto create_files; | 37 | return 0; |
40 | 38 | ||
41 | tcp = tcp_from_cgproto(cg_proto); | 39 | tcp = tcp_from_cgproto(cg_proto); |
42 | 40 | ||
@@ -59,9 +57,7 @@ int tcp_init_cgroup(struct cgroup *cgrp, struct cgroup_subsys *ss) | |||
59 | cg_proto->sockets_allocated = &tcp->tcp_sockets_allocated; | 57 | cg_proto->sockets_allocated = &tcp->tcp_sockets_allocated; |
60 | cg_proto->memcg = memcg; | 58 | cg_proto->memcg = memcg; |
61 | 59 | ||
62 | create_files: | 60 | return 0; |
63 | return cgroup_add_files(cgrp, ss, tcp_files, | ||
64 | ARRAY_SIZE(tcp_files)); | ||
65 | } | 61 | } |
66 | EXPORT_SYMBOL(tcp_init_cgroup); | 62 | EXPORT_SYMBOL(tcp_init_cgroup); |
67 | 63 | ||
@@ -266,4 +262,12 @@ static struct cftype tcp_files[] = { | |||
266 | .trigger = tcp_cgroup_reset, | 262 | .trigger = tcp_cgroup_reset, |
267 | .read_u64 = tcp_cgroup_read, | 263 | .read_u64 = tcp_cgroup_read, |
268 | }, | 264 | }, |
265 | { } /* terminate */ | ||
269 | }; | 266 | }; |
267 | |||
268 | static int __init tcp_memcontrol_init(void) | ||
269 | { | ||
270 | WARN_ON(cgroup_add_cftypes(&mem_cgroup_subsys, tcp_files)); | ||
271 | return 0; | ||
272 | } | ||
273 | __initcall(tcp_memcontrol_init); | ||