- m->cgroup_hierarchy = NULL;
- if (asprintf(&m->cgroup_hierarchy, "%s/systemd-%llu", strcmp(cp, "/") == 0 ? "" : cp, (unsigned long long) pid) < 0) {
+
+ 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 */
+
+ m->cgroup_hierarchy = NULL;
+ r = asprintf(&m->cgroup_hierarchy, "%s%s", streq(cp, "/") ? "" : cp, suffix);