vircgroupv1: refactor virCgroupV1DetectPlacement

Remove one level of indentation by splitting the condition.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Pavel Hrdina 2020-11-04 19:46:24 +01:00
parent 9c1693eff4
commit 5f56dd7c83

View File

@ -339,23 +339,28 @@ virCgroupV1DetectPlacement(virCgroupPtr group,
for (i = 0; i < VIR_CGROUP_CONTROLLER_LAST; i++) {
const char *typestr = virCgroupV1ControllerTypeToString(i);
if (virCgroupV1MountOptsMatchController(controllers, typestr) &&
group->legacy[i].mountPoint != NULL &&
group->legacy[i].placement == NULL) {
/*
* selfpath == "/" + path="" -> "/"
* selfpath == "/libvirt.service" + path == "" -> "/libvirt.service"
* selfpath == "/libvirt.service" + path == "foo" -> "/libvirt.service/foo"
*/
if (i == VIR_CGROUP_CONTROLLER_SYSTEMD) {
group->legacy[i].placement = g_strdup(selfpath);
} else {
bool delim = STREQ(selfpath, "/") || STREQ(path, "");
if (!virCgroupV1MountOptsMatchController(controllers, typestr))
continue;
group->legacy[i].placement = g_strdup_printf("%s%s%s", selfpath,
delim ? "" : "/",
path);
}
if (!group->legacy[i].mountPoint)
continue;
if (group->legacy[i].placement)
continue;
/*
* selfpath == "/" + path="" -> "/"
* selfpath == "/libvirt.service" + path == "" -> "/libvirt.service"
* selfpath == "/libvirt.service" + path == "foo" -> "/libvirt.service/foo"
*/
if (i == VIR_CGROUP_CONTROLLER_SYSTEMD) {
group->legacy[i].placement = g_strdup(selfpath);
} else {
bool delim = STREQ(selfpath, "/") || STREQ(path, "");
group->legacy[i].placement = g_strdup_printf("%s%s%s", selfpath,
delim ? "" : "/",
path);
}
}