Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2866c0b4 authored by Tejun Heo's avatar Tejun Heo
Browse files

cgroup: refactor cgroup_masks_read() in the debug controller



Factor out cgroup_masks_read_one() out of cgroup_masks_read() for
simplicity.

Signed-off-by: default avatarTejun Heo <tj@kernel.org>
Cc: Waiman Long <longman@redhat.com>
parent 8cc38fa7
Loading
Loading
Loading
Loading
+21 −25
Original line number Diff line number Diff line
@@ -200,27 +200,16 @@ static int cgroup_subsys_states_read(struct seq_file *seq, void *v)
	return 0;
}

static int cgroup_masks_read(struct seq_file *seq, void *v)
static void cgroup_masks_read_one(struct seq_file *seq, const char *name,
				  u16 mask)
{
	struct cgroup *cgrp = seq_css(seq)->cgroup;
	struct cgroup_subsys *ss;
	int i, j;
	struct {
		u16  *mask;
		char *name;
	} mask_list[] = {
		{ &cgrp->subtree_control,  "subtree_control"  },
		{ &cgrp->subtree_ss_mask,  "subtree_ss_mask"  },
	};

	mutex_lock(&cgroup_mutex);
	for (i = 0; i < ARRAY_SIZE(mask_list); i++) {
		u16 mask = *mask_list[i].mask;
	int ssid;
	bool first = true;

		seq_printf(seq, "%-17s: ", mask_list[i].name);
		for_each_subsys(ss, j) {
			if (!(mask & (1 << ss->id)))
	seq_printf(seq, "%-17s: ", name);
	for_each_subsys(ss, ssid) {
		if (!(mask & (1 << ssid)))
			continue;
		if (!first)
			seq_puts(seq, ", ");
@@ -230,6 +219,13 @@ static int cgroup_masks_read(struct seq_file *seq, void *v)
	seq_putc(seq, '\n');
}

static int cgroup_masks_read(struct seq_file *seq, void *v)
{
	struct cgroup *cgrp = seq_css(seq)->cgroup;

	mutex_lock(&cgroup_mutex);
	cgroup_masks_read_one(seq, "subtree_control", cgrp->subtree_control);
	cgroup_masks_read_one(seq, "subtree_ss_mask", cgrp->subtree_ss_mask);
	mutex_unlock(&cgroup_mutex);
	return 0;
}