aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/cgroup.c
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2013-12-05 12:28:04 -0500
committerTejun Heo <tj@kernel.org>2013-12-05 12:28:04 -0500
commit2da8ca822d49c8b8781800ad155aaa00e7bb5f1a (patch)
tree9ec6b0a7a009d76d0c607640eae64d3e9ed666a9 /kernel/cgroup.c
parent7da112792753d71aed44b918395892a1fc53048a (diff)
cgroup: replace cftype->read_seq_string() with cftype->seq_show()
In preparation of conversion to kernfs, cgroup file handling is updated so that it can be easily mapped to kernfs. This patch replaces cftype->read_seq_string() with cftype->seq_show() which is not limited to single_open() operation and will map directcly to kernfs seq_file interface. The conversions are mechanical. As ->seq_show() doesn't have @css and @cft, the functions which make use of them are converted to use seq_css() and seq_cft() respectively. In several occassions, e.f. if it has seq_string in its name, the function name is updated to fit the new method better. This patch does not introduce any behavior changes. Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: Aristeu Rozanski <arozansk@redhat.com> Acked-by: Vivek Goyal <vgoyal@redhat.com> Acked-by: Michal Hocko <mhocko@suse.cz> Acked-by: Daniel Wagner <daniel.wagner@bmw-carit.de> Acked-by: Li Zefan <lizefan@huawei.com> Cc: Jens Axboe <axboe@kernel.dk> Cc: Ingo Molnar <mingo@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Balbir Singh <bsingharora@gmail.com> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Neil Horman <nhorman@tuxdriver.com>
Diffstat (limited to 'kernel/cgroup.c')
-rw-r--r--kernel/cgroup.c34
1 files changed, 16 insertions, 18 deletions
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index 036c05d8e572..c45e63328a0a 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -2212,10 +2212,9 @@ static int cgroup_release_agent_write(struct cgroup_subsys_state *css,
2212 return 0; 2212 return 0;
2213} 2213}
2214 2214
2215static int cgroup_release_agent_show(struct cgroup_subsys_state *css, 2215static int cgroup_release_agent_show(struct seq_file *seq, void *v)
2216 struct cftype *cft, struct seq_file *seq)
2217{ 2216{
2218 struct cgroup *cgrp = css->cgroup; 2217 struct cgroup *cgrp = seq_css(seq)->cgroup;
2219 2218
2220 if (!cgroup_lock_live_group(cgrp)) 2219 if (!cgroup_lock_live_group(cgrp))
2221 return -ENODEV; 2220 return -ENODEV;
@@ -2225,10 +2224,11 @@ static int cgroup_release_agent_show(struct cgroup_subsys_state *css,
2225 return 0; 2224 return 0;
2226} 2225}
2227 2226
2228static int cgroup_sane_behavior_show(struct cgroup_subsys_state *css, 2227static int cgroup_sane_behavior_show(struct seq_file *seq, void *v)
2229 struct cftype *cft, struct seq_file *seq)
2230{ 2228{
2231 seq_printf(seq, "%d\n", cgroup_sane_behavior(css->cgroup)); 2229 struct cgroup *cgrp = seq_css(seq)->cgroup;
2230
2231 seq_printf(seq, "%d\n", cgroup_sane_behavior(cgrp));
2232 return 0; 2232 return 0;
2233} 2233}
2234 2234
@@ -2291,8 +2291,8 @@ static int cgroup_seqfile_show(struct seq_file *m, void *arg)
2291 struct cftype *cft = seq_cft(m); 2291 struct cftype *cft = seq_cft(m);
2292 struct cgroup_subsys_state *css = seq_css(m); 2292 struct cgroup_subsys_state *css = seq_css(m);
2293 2293
2294 if (cft->read_seq_string) 2294 if (cft->seq_show)
2295 return cft->read_seq_string(css, cft, m); 2295 return cft->seq_show(m, arg);
2296 2296
2297 if (cft->read_u64) 2297 if (cft->read_u64)
2298 seq_printf(m, "%llu\n", cft->read_u64(css, cft)); 2298 seq_printf(m, "%llu\n", cft->read_u64(css, cft));
@@ -2559,7 +2559,7 @@ static umode_t cgroup_file_mode(const struct cftype *cft)
2559 if (cft->mode) 2559 if (cft->mode)
2560 return cft->mode; 2560 return cft->mode;
2561 2561
2562 if (cft->read_u64 || cft->read_s64 || cft->read_seq_string) 2562 if (cft->read_u64 || cft->read_s64 || cft->seq_show)
2563 mode |= S_IRUGO; 2563 mode |= S_IRUGO;
2564 2564
2565 if (cft->write_u64 || cft->write_s64 || cft->write_string || 2565 if (cft->write_u64 || cft->write_s64 || cft->write_string ||
@@ -3874,7 +3874,7 @@ static struct cftype cgroup_base_files[] = {
3874 { 3874 {
3875 .name = "cgroup.sane_behavior", 3875 .name = "cgroup.sane_behavior",
3876 .flags = CFTYPE_ONLY_ON_ROOT, 3876 .flags = CFTYPE_ONLY_ON_ROOT,
3877 .read_seq_string = cgroup_sane_behavior_show, 3877 .seq_show = cgroup_sane_behavior_show,
3878 }, 3878 },
3879 3879
3880 /* 3880 /*
@@ -3899,7 +3899,7 @@ static struct cftype cgroup_base_files[] = {
3899 { 3899 {
3900 .name = "release_agent", 3900 .name = "release_agent",
3901 .flags = CFTYPE_INSANE | CFTYPE_ONLY_ON_ROOT, 3901 .flags = CFTYPE_INSANE | CFTYPE_ONLY_ON_ROOT,
3902 .read_seq_string = cgroup_release_agent_show, 3902 .seq_show = cgroup_release_agent_show,
3903 .write_string = cgroup_release_agent_write, 3903 .write_string = cgroup_release_agent_write,
3904 .max_write_len = PATH_MAX, 3904 .max_write_len = PATH_MAX,
3905 }, 3905 },
@@ -5274,9 +5274,7 @@ static u64 current_css_set_refcount_read(struct cgroup_subsys_state *css,
5274 return count; 5274 return count;
5275} 5275}
5276 5276
5277static int current_css_set_cg_links_read(struct cgroup_subsys_state *css, 5277static int current_css_set_cg_links_read(struct seq_file *seq, void *v)
5278 struct cftype *cft,
5279 struct seq_file *seq)
5280{ 5278{
5281 struct cgrp_cset_link *link; 5279 struct cgrp_cset_link *link;
5282 struct css_set *cset; 5280 struct css_set *cset;
@@ -5301,9 +5299,9 @@ static int current_css_set_cg_links_read(struct cgroup_subsys_state *css,
5301} 5299}
5302 5300
5303#define MAX_TASKS_SHOWN_PER_CSS 25 5301#define MAX_TASKS_SHOWN_PER_CSS 25
5304static int cgroup_css_links_read(struct cgroup_subsys_state *css, 5302static int cgroup_css_links_read(struct seq_file *seq, void *v)
5305 struct cftype *cft, struct seq_file *seq)
5306{ 5303{
5304 struct cgroup_subsys_state *css = seq_css(seq);
5307 struct cgrp_cset_link *link; 5305 struct cgrp_cset_link *link;
5308 5306
5309 read_lock(&css_set_lock); 5307 read_lock(&css_set_lock);
@@ -5349,12 +5347,12 @@ static struct cftype debug_files[] = {
5349 5347
5350 { 5348 {
5351 .name = "current_css_set_cg_links", 5349 .name = "current_css_set_cg_links",
5352 .read_seq_string = current_css_set_cg_links_read, 5350 .seq_show = current_css_set_cg_links_read,
5353 }, 5351 },
5354 5352
5355 { 5353 {
5356 .name = "cgroup_css_links", 5354 .name = "cgroup_css_links",
5357 .read_seq_string = cgroup_css_links_read, 5355 .seq_show = cgroup_css_links_read,
5358 }, 5356 },
5359 5357
5360 { 5358 {