summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTejun Heo2015-09-18 23:54:23 +0200
committerTejun Heo2015-09-18 23:54:23 +0200
commitccdca2187b03decd186df13e44c57fbf1974d0a0 (patch)
tree10ac4c0276c952377e7feed6ceeb291d903a8401
parentcgroup: replace cftype->mode with CFTYPE_WORLD_WRITABLE (diff)
downloadkernel-qcow2-linux-ccdca2187b03decd186df13e44c57fbf1974d0a0.tar.gz
kernel-qcow2-linux-ccdca2187b03decd186df13e44c57fbf1974d0a0.tar.xz
kernel-qcow2-linux-ccdca2187b03decd186df13e44c57fbf1974d0a0.zip
cgroup: relocate cgroup_populate_dir()
Move it upwards so that it's right below cgroup_clear_dir() and the forward declaration is unnecessary. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Li Zefan <lizefan@huawei.com> Cc: Johannes Weiner <hannes@cmpxchg.org>
-rw-r--r--kernel/cgroup.c63
1 files changed, 31 insertions, 32 deletions
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index 5031edc6f077..c38c3a229d14 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -1116,7 +1116,6 @@ static struct cgroup *task_cgroup_from_root(struct task_struct *task,
* update of a tasks cgroup pointer by cgroup_attach_task()
*/
-static int cgroup_populate_dir(struct cgroup *cgrp, unsigned long subsys_mask);
static struct kernfs_syscall_ops cgroup_kf_syscall_ops;
static const struct file_operations proc_cgroupstats_operations;
@@ -1333,6 +1332,37 @@ static void cgroup_clear_dir(struct cgroup *cgrp, unsigned long subsys_mask)
}
}
+/**
+ * cgroup_populate_dir - create subsys files in a cgroup directory
+ * @cgrp: target cgroup
+ * @subsys_mask: mask of the subsystem ids whose files should be added
+ *
+ * On failure, no file is added.
+ */
+static int cgroup_populate_dir(struct cgroup *cgrp, unsigned long subsys_mask)
+{
+ struct cgroup_subsys *ss;
+ int i, ret = 0;
+
+ /* process cftsets of each subsystem */
+ for_each_subsys(ss, i) {
+ struct cftype *cfts;
+
+ if (!(subsys_mask & (1 << i)))
+ continue;
+
+ list_for_each_entry(cfts, &ss->cfts, node) {
+ ret = cgroup_addrm_files(cgrp, cfts, true);
+ if (ret < 0)
+ goto err;
+ }
+ }
+ return 0;
+err:
+ cgroup_clear_dir(cgrp, subsys_mask);
+ return ret;
+}
+
static int rebind_subsystems(struct cgroup_root *dst_root,
unsigned long ss_mask)
{
@@ -4438,37 +4468,6 @@ static struct cftype cgroup_legacy_base_files[] = {
{ } /* terminate */
};
-/**
- * cgroup_populate_dir - create subsys files in a cgroup directory
- * @cgrp: target cgroup
- * @subsys_mask: mask of the subsystem ids whose files should be added
- *
- * On failure, no file is added.
- */
-static int cgroup_populate_dir(struct cgroup *cgrp, unsigned long subsys_mask)
-{
- struct cgroup_subsys *ss;
- int i, ret = 0;
-
- /* process cftsets of each subsystem */
- for_each_subsys(ss, i) {
- struct cftype *cfts;
-
- if (!(subsys_mask & (1 << i)))
- continue;
-
- list_for_each_entry(cfts, &ss->cfts, node) {
- ret = cgroup_addrm_files(cgrp, cfts, true);
- if (ret < 0)
- goto err;
- }
- }
- return 0;
-err:
- cgroup_clear_dir(cgrp, subsys_mask);
- return ret;
-}
-
/*
* css destruction is four-stage process.
*