- if ((r = cgroup_init()) != 0) {
- log_error("Failed to initialize libcg: %s", cgroup_strerror(r));
- return translate_error(r, errno);
- }
-
- free(m->cgroup_controller);
- if (!(m->cgroup_controller = strdup("name=systemd")))
- return -ENOMEM;
-
- free(m->cgroup_mount_point);
- m->cgroup_mount_point = NULL;
- if ((r = cgroup_get_subsys_mount_point(m->cgroup_controller, &m->cgroup_mount_point)))
- return translate_error(r, errno);
-
- pid = getpid();
-
- if ((r = cgroup_get_current_controller_path(pid, m->cgroup_controller, &cp)))
- return translate_error(r, errno);
-
- snprintf(suffix, sizeof(suffix), "/systemd-%u", (unsigned) pid);
- char_array_0(suffix);
-
- free(m->cgroup_hierarchy);
-
- if (endswith(cp, suffix))
- /* We probably got reexecuted and can continue to use our root cgroup */
- m->cgroup_hierarchy = cp;
- else {
- /* We need a new root cgroup */