cgroup: Display legacy cgroup files on default hierarchy
Kernel command line parameter cgroup__DEVEL__legacy_files_on_dfl forces legacy cgroup files to show up on default hierarhcy if susbsystem does not have any files defined for default hierarchy. But this seems to be working only if legacy files are defined in ss->legacy_cftypes. If one adds some cftypes later using cgroup_add_legacy_cftypes(), these files don't show up on default hierarchy. Update the function accordingly so that the dynamically added legacy files also show up in the default hierarchy if the target subsystem is also using the base legacy files for the default hierarchy. tj: Patch description and comment updates. Signed-off-by: Vivek Goyal <vgoyal@redhat.com> Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
parent
71b1fb5c44
commit
fa8137be6b
|
@ -3271,8 +3271,17 @@ int cgroup_add_legacy_cftypes(struct cgroup_subsys *ss, struct cftype *cfts)
|
|||
{
|
||||
struct cftype *cft;
|
||||
|
||||
for (cft = cfts; cft && cft->name[0] != '\0'; cft++)
|
||||
cft->flags |= __CFTYPE_NOT_ON_DFL;
|
||||
/*
|
||||
* If legacy_flies_on_dfl, we want to show the legacy files on the
|
||||
* dfl hierarchy but iff the target subsystem hasn't been updated
|
||||
* for the dfl hierarchy yet.
|
||||
*/
|
||||
if (!cgroup_legacy_files_on_dfl ||
|
||||
ss->dfl_cftypes != ss->legacy_cftypes) {
|
||||
for (cft = cfts; cft && cft->name[0] != '\0'; cft++)
|
||||
cft->flags |= __CFTYPE_NOT_ON_DFL;
|
||||
}
|
||||
|
||||
return cgroup_add_cftypes(ss, cfts);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue