aboutsummaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorJohannes Weiner <hannes@cmpxchg.org>2012-05-29 18:07:06 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-05-29 19:22:27 -0400
commitfada52ca0e48d227f055134e8cc32f583c5b8b53 (patch)
tree2dc0b35e8a73679222d5257cd98411d324892148 /mm
parent6104621de4ffd94d66eae59cedc70d742a92316b (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.c23
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
4131static int mem_control_numa_stat_show(struct seq_file *m, void *arg) 4131static 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
4612static const struct file_operations mem_control_numa_stat_file_operations = {
4613 .read = seq_read,
4614 .llseek = seq_lseek,
4615 .release = single_release,
4616};
4617
4618static 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
4628static int memcg_init_kmem(struct mem_cgroup *memcg, struct cgroup_subsys *ss) 4612static 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