chiark / gitweb /
transaction: cancel jobs non-recursively on isolate
[elogind.git] / src / core / cgroup.c
index 3334f216a240bf19261d994f9b28b75eb56dbda5..e07d1ed3c96d2a803c0d49d6fa4147251e936a10 100644 (file)
@@ -30,6 +30,7 @@
 #include "cgroup.h"
 #include "cgroup-util.h"
 #include "log.h"
+#include "strv.h"
 
 int cgroup_bonding_realize(CGroupBonding *b) {
         int r;
@@ -305,7 +306,8 @@ int manager_setup_cgroup(Manager *m) {
         }
 
         /* 1. Determine hierarchy */
-        if ((r = cg_get_by_pid(SYSTEMD_CGROUP_CONTROLLER, 0, &current)) < 0) {
+        r = cg_get_by_pid(SYSTEMD_CGROUP_CONTROLLER, 0, &current);
+        if (r < 0) {
                 log_error("Cannot determine cgroup we are running in: %s", strerror(-r));
                 goto finish;
         }
@@ -352,7 +354,8 @@ int manager_setup_cgroup(Manager *m) {
                 log_debug("Release agent already installed.");
 
         /* 4. Realize the group */
-        if ((r = cg_create_and_attach(SYSTEMD_CGROUP_CONTROLLER, m->cgroup_hierarchy, 0)) < 0) {
+        r = cg_create_and_attach(SYSTEMD_CGROUP_CONTROLLER, m->cgroup_hierarchy, 0);
+        if (r < 0) {
                 log_error("Failed to create root cgroup hierarchy: %s", strerror(-r));
                 goto finish;
         }
@@ -361,7 +364,8 @@ int manager_setup_cgroup(Manager *m) {
         if (m->pin_cgroupfs_fd >= 0)
                 close_nointr_nofail(m->pin_cgroupfs_fd);
 
-        if ((m->pin_cgroupfs_fd = open(path, O_RDONLY|O_CLOEXEC|O_DIRECTORY|O_NOCTTY|O_NONBLOCK)) < 0) {
+        m->pin_cgroupfs_fd = open(path, O_RDONLY|O_CLOEXEC|O_DIRECTORY|O_NOCTTY|O_NONBLOCK);
+        if (r < 0) {
                 log_error("Failed to open pin file: %m");
                 r = -errno;
                 goto finish;
@@ -369,6 +373,8 @@ int manager_setup_cgroup(Manager *m) {
 
         log_debug("Created root group.");
 
+        cg_shorten_controllers(m->default_controllers);
+
 finish:
         free(current);
         free(path);