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>
This commit is contained in:
Родитель
7dbdb199d3
Коммит
ccdca2187b
|
@ -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.
|
||||
*
|
||||
|
|
Загрузка…
Ссылка в новой задаче