Skip to content

Commit

Permalink
cgroup: relocate cgroup_populate_dir()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Tejun Heo committed Sep 18, 2015
1 parent 7dbdb19 commit ccdca21
Showing 1 changed file with 31 additions and 32 deletions.
63 changes: 31 additions & 32 deletions kernel/cgroup.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -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)
{
Expand Down Expand Up @@ -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.
*
Expand Down

0 comments on commit ccdca21

Please sign in to comment.