nspawn: chown() the legacy hierarchy when it's used in a container
authorEvgeny Vereshchagin <evvers@ya.ru>
Mon, 17 Sep 2018 07:12:38 +0000 (07:12 +0000)
committerLennart Poettering <lennart@poettering.net>
Wed, 26 Sep 2018 15:29:17 +0000 (17:29 +0200)
This is a follow-up to 720f0a2f3c928cc9379501a52146be9fbb4d9be2.

Closes https://github.com/systemd/systemd/issues/10026
Closes https://github.com/systemd/systemd/issues/9563

src/nspawn/nspawn-cgroup.c

index f7ec077..8732c9e 100644 (file)
@@ -59,7 +59,7 @@ int chown_cgroup(pid_t pid, CGroupUnified unified_requested, uid_t uid_shift) {
         if (r < 0)
                 return log_error_errno(r, "Failed to chown() cgroup %s: %m", fs);
 
-        if (unified_requested == CGROUP_UNIFIED_SYSTEMD) {
+        if (unified_requested == CGROUP_UNIFIED_SYSTEMD || (unified_requested == CGROUP_UNIFIED_NONE && cg_unified_controller(SYSTEMD_CGROUP_CONTROLLER) > 0)) {
                 _cleanup_free_ char *lfs = NULL;
                 /* Always propagate access rights from unified to legacy controller */