diff options
author | Johannes Weiner <hannes@cmpxchg.org> | 2012-05-29 18:07:06 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-29 19:22:27 -0400 |
commit | fada52ca0e48d227f055134e8cc32f583c5b8b53 (patch) | |
tree | 2dc0b35e8a73679222d5257cd98411d324892148 /mm | |
parent | 6104621de4ffd94d66eae59cedc70d742a92316b (diff) |
mm: memcg: convert numa stat to read_seq_string interface
Instead of using the raw seq_file file interface, switch over to the
read_seq_string cftype callback and let cgroup core code set up the
seq_file.
Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Michal Hocko <mhocko@suse.cz>
Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Ying Han <yinghan@google.com>
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm')
-rw-r--r-- | mm/memcontrol.c | 23 |
1 files changed, 3 insertions, 20 deletions
diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 6f0c5e7f9197..ba9e1b131b4d 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c | |||
@@ -4128,12 +4128,12 @@ mem_cgroup_get_total_stat(struct mem_cgroup *memcg, struct mcs_total_stat *s) | |||
4128 | } | 4128 | } |
4129 | 4129 | ||
4130 | #ifdef CONFIG_NUMA | 4130 | #ifdef CONFIG_NUMA |
4131 | static int mem_control_numa_stat_show(struct seq_file *m, void *arg) | 4131 | static int mem_control_numa_stat_show(struct cgroup *cont, struct cftype *cft, |
4132 | struct seq_file *m) | ||
4132 | { | 4133 | { |
4133 | int nid; | 4134 | int nid; |
4134 | unsigned long total_nr, file_nr, anon_nr, unevictable_nr; | 4135 | unsigned long total_nr, file_nr, anon_nr, unevictable_nr; |
4135 | unsigned long node_nr; | 4136 | unsigned long node_nr; |
4136 | struct cgroup *cont = m->private; | ||
4137 | struct mem_cgroup *memcg = mem_cgroup_from_cont(cont); | 4137 | struct mem_cgroup *memcg = mem_cgroup_from_cont(cont); |
4138 | 4138 | ||
4139 | total_nr = mem_cgroup_nr_lru_pages(memcg, LRU_ALL); | 4139 | total_nr = mem_cgroup_nr_lru_pages(memcg, LRU_ALL); |
@@ -4608,22 +4608,6 @@ static int mem_cgroup_oom_control_write(struct cgroup *cgrp, | |||
4608 | return 0; | 4608 | return 0; |
4609 | } | 4609 | } |
4610 | 4610 | ||
4611 | #ifdef CONFIG_NUMA | ||
4612 | static const struct file_operations mem_control_numa_stat_file_operations = { | ||
4613 | .read = seq_read, | ||
4614 | .llseek = seq_lseek, | ||
4615 | .release = single_release, | ||
4616 | }; | ||
4617 | |||
4618 | static int mem_control_numa_stat_open(struct inode *unused, struct file *file) | ||
4619 | { | ||
4620 | struct cgroup *cont = file->f_dentry->d_parent->d_fsdata; | ||
4621 | |||
4622 | file->f_op = &mem_control_numa_stat_file_operations; | ||
4623 | return single_open(file, mem_control_numa_stat_show, cont); | ||
4624 | } | ||
4625 | #endif /* CONFIG_NUMA */ | ||
4626 | |||
4627 | #ifdef CONFIG_CGROUP_MEM_RES_CTLR_KMEM | 4611 | #ifdef CONFIG_CGROUP_MEM_RES_CTLR_KMEM |
4628 | static int memcg_init_kmem(struct mem_cgroup *memcg, struct cgroup_subsys *ss) | 4612 | static int memcg_init_kmem(struct mem_cgroup *memcg, struct cgroup_subsys *ss) |
4629 | { | 4613 | { |
@@ -4711,8 +4695,7 @@ static struct cftype mem_cgroup_files[] = { | |||
4711 | #ifdef CONFIG_NUMA | 4695 | #ifdef CONFIG_NUMA |
4712 | { | 4696 | { |
4713 | .name = "numa_stat", | 4697 | .name = "numa_stat", |
4714 | .open = mem_control_numa_stat_open, | 4698 | .read_seq_string = mem_control_numa_stat_show, |
4715 | .mode = S_IRUGO, | ||
4716 | }, | 4699 | }, |
4717 | #endif | 4700 | #endif |
4718 | #ifdef CONFIG_CGROUP_MEM_RES_CTLR_SWAP | 4701 | #ifdef CONFIG_CGROUP_MEM_RES_CTLR_SWAP |