aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorSerge E. Hallyn <serue@us.ibm.com>2008-04-29 04:00:14 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-04-29 11:06:10 -0400
commit29486df325e1fe6e1764afcb19e3370804c2b002 (patch)
treed69a96bb829940f3ae5171fde481edb20a9e468a /kernel
parent28fd5dfc12bde391981dfdcf20755952b6e916af (diff)
cgroups: introduce cft->read_seq()
Introduce a read_seq() helper in cftype, which uses seq_file to print out lists. Use it in the devices cgroup. Also split devices.allow into two files, so now devices.deny and devices.allow are the ones to use to manipulate the whitelist, while devices.list outputs the cgroup's current whitelist. Signed-off-by: Serge E. Hallyn <serue@us.ibm.com> Acked-by: Paul Menage <menage@google.com> Cc: Balbir Singh <balbir@in.ibm.com> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/cgroup.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index aeceb8868981..abc433772e5a 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -1549,11 +1549,14 @@ static int cgroup_seqfile_show(struct seq_file *m, void *arg)
1549{ 1549{
1550 struct cgroup_seqfile_state *state = m->private; 1550 struct cgroup_seqfile_state *state = m->private;
1551 struct cftype *cft = state->cft; 1551 struct cftype *cft = state->cft;
1552 struct cgroup_map_cb cb = { 1552 if (cft->read_map) {
1553 .fill = cgroup_map_add, 1553 struct cgroup_map_cb cb = {
1554 .state = m, 1554 .fill = cgroup_map_add,
1555 }; 1555 .state = m,
1556 return cft->read_map(state->cgroup, cft, &cb); 1556 };
1557 return cft->read_map(state->cgroup, cft, &cb);
1558 }
1559 return cft->read_seq_string(state->cgroup, cft, m);
1557} 1560}
1558 1561
1559int cgroup_seqfile_release(struct inode *inode, struct file *file) 1562int cgroup_seqfile_release(struct inode *inode, struct file *file)
@@ -1581,7 +1584,7 @@ static int cgroup_file_open(struct inode *inode, struct file *file)
1581 cft = __d_cft(file->f_dentry); 1584 cft = __d_cft(file->f_dentry);
1582 if (!cft) 1585 if (!cft)
1583 return -ENODEV; 1586 return -ENODEV;
1584 if (cft->read_map) { 1587 if (cft->read_map || cft->read_seq_string) {
1585 struct cgroup_seqfile_state *state = 1588 struct cgroup_seqfile_state *state =
1586 kzalloc(sizeof(*state), GFP_USER); 1589 kzalloc(sizeof(*state), GFP_USER);
1587 if (!state) 1590 if (!state)