diff options
Diffstat (limited to 'kernel/cgroup/debug.c')
-rw-r--r-- | kernel/cgroup/debug.c | 46 |
1 files changed, 21 insertions, 25 deletions
diff --git a/kernel/cgroup/debug.c b/kernel/cgroup/debug.c index d61e692a5338..163fdbd7adf6 100644 --- a/kernel/cgroup/debug.c +++ b/kernel/cgroup/debug.c | |||
@@ -200,36 +200,32 @@ static int cgroup_subsys_states_read(struct seq_file *seq, void *v) | |||
200 | return 0; | 200 | return 0; |
201 | } | 201 | } |
202 | 202 | ||
203 | static int cgroup_masks_read(struct seq_file *seq, void *v) | 203 | static void cgroup_masks_read_one(struct seq_file *seq, const char *name, |
204 | u16 mask) | ||
204 | { | 205 | { |
205 | struct cgroup *cgrp = seq_css(seq)->cgroup; | ||
206 | struct cgroup_subsys *ss; | 206 | struct cgroup_subsys *ss; |
207 | int i, j; | 207 | int ssid; |
208 | struct { | 208 | bool first = true; |
209 | u16 *mask; | ||
210 | char *name; | ||
211 | } mask_list[] = { | ||
212 | { &cgrp->subtree_control, "subtree_control" }, | ||
213 | { &cgrp->subtree_ss_mask, "subtree_ss_mask" }, | ||
214 | }; | ||
215 | 209 | ||
216 | mutex_lock(&cgroup_mutex); | 210 | seq_printf(seq, "%-17s: ", name); |
217 | for (i = 0; i < ARRAY_SIZE(mask_list); i++) { | 211 | for_each_subsys(ss, ssid) { |
218 | u16 mask = *mask_list[i].mask; | 212 | if (!(mask & (1 << ssid))) |
219 | bool first = true; | 213 | continue; |
220 | 214 | if (!first) | |
221 | seq_printf(seq, "%-17s: ", mask_list[i].name); | 215 | seq_puts(seq, ", "); |
222 | for_each_subsys(ss, j) { | 216 | seq_puts(seq, ss->name); |
223 | if (!(mask & (1 << ss->id))) | 217 | first = false; |
224 | continue; | ||
225 | if (!first) | ||
226 | seq_puts(seq, ", "); | ||
227 | seq_puts(seq, ss->name); | ||
228 | first = false; | ||
229 | } | ||
230 | seq_putc(seq, '\n'); | ||
231 | } | 218 | } |
219 | seq_putc(seq, '\n'); | ||
220 | } | ||
232 | 221 | ||
222 | static int cgroup_masks_read(struct seq_file *seq, void *v) | ||
223 | { | ||
224 | struct cgroup *cgrp = seq_css(seq)->cgroup; | ||
225 | |||
226 | mutex_lock(&cgroup_mutex); | ||
227 | cgroup_masks_read_one(seq, "subtree_control", cgrp->subtree_control); | ||
228 | cgroup_masks_read_one(seq, "subtree_ss_mask", cgrp->subtree_ss_mask); | ||
233 | mutex_unlock(&cgroup_mutex); | 229 | mutex_unlock(&cgroup_mutex); |
234 | return 0; | 230 | return 0; |
235 | } | 231 | } |