diff options
author | Tejun Heo <tj@kernel.org> | 2013-12-05 12:28:04 -0500 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2013-12-05 12:28:04 -0500 |
commit | 2da8ca822d49c8b8781800ad155aaa00e7bb5f1a (patch) | |
tree | 9ec6b0a7a009d76d0c607640eae64d3e9ed666a9 /kernel/cgroup.c | |
parent | 7da112792753d71aed44b918395892a1fc53048a (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.c | 34 |
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 | ||
2215 | static int cgroup_release_agent_show(struct cgroup_subsys_state *css, | 2215 | static 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 | ||
2228 | static int cgroup_sane_behavior_show(struct cgroup_subsys_state *css, | 2227 | static 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 | ||
5277 | static int current_css_set_cg_links_read(struct cgroup_subsys_state *css, | 5277 | static 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 |
5304 | static int cgroup_css_links_read(struct cgroup_subsys_state *css, | 5302 | static 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 | { |