From: Michal Sekletar Date: Fri, 19 Sep 2014 15:14:10 +0000 (+0200) Subject: cgroup: don't trim cgroup trees created by someone else X-Git-Tag: archive/raspbian/239-10+rpi1^2~11 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=c40d0f5470de7ea323b80b758abe18932c7916e9;p=systemd.git cgroup: don't trim cgroup trees created by someone else In cases when there is a cgroup tree in a controller hierarchy which was not created by us, but it looks like it was (i.e. cgroup path is the same as the one in systemd's named hierarchy) we shouldn't delete it. Origin: http://lists.freedesktop.org/archives/systemd-devel/2014-September/023276.html Bug-Debian: https://bugs.debian.org/777601 Gbp-Pq: Topic debian Gbp-Pq: Name cgroup-don-t-trim-cgroup-trees-created-by-someone-el.patch --- diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c index 038ece4b..1d20bb5f 100644 --- a/src/basic/cgroup-util.c +++ b/src/basic/cgroup-util.c @@ -2135,8 +2135,6 @@ int cg_create_everywhere(CGroupMask supported, CGroupMask mask, const char *path if (mask & bit) (void) cg_create(n, path); - else if (supported & bit) - (void) cg_trim(n, path, true); } return created; diff --git a/src/core/cgroup.c b/src/core/cgroup.c index bb024362..1b695c60 100644 --- a/src/core/cgroup.c +++ b/src/core/cgroup.c @@ -1858,7 +1858,7 @@ void unit_prune_cgroup(Unit *u) { is_root_slice = unit_has_name(u, SPECIAL_ROOT_SLICE); - r = cg_trim_everywhere(u->manager->cgroup_supported, u->cgroup_path, !is_root_slice); + r = cg_trim_everywhere(u->cgroup_realized_mask, u->cgroup_path, !is_root_slice); if (r < 0) { log_unit_debug_errno(u, r, "Failed to destroy cgroup %s, ignoring: %m", u->cgroup_path); return;