chiark / gitweb /
cgroup: detect cgroup namespaces
authorChristian Brauner <cbrauner@suse.de>
Thu, 23 Jun 2016 09:52:45 +0000 (11:52 +0200)
committerSven Eden <yamakuzure@gmx.net>
Wed, 5 Jul 2017 06:50:49 +0000 (08:50 +0200)
- define CLONE_NEWCGROUP
- add fun to detect whether cgroup namespaces are supported

src/basic/cgroup-util.c
src/basic/cgroup-util.h
src/basic/missing.h

index 5e53f44..a199950 100644 (file)
@@ -134,6 +134,22 @@ int cg_read_event(const char *controller, const char *path, const char *event,
         return -ENOENT;
 }
 
+#if 0 /// UNNEEDED by elogind
+bool cg_ns_supported(void) {
+        static thread_local int enabled = -1;
+
+        if (enabled >= 0)
+                return enabled;
+
+        if (access("/proc/self/ns/cgroup", F_OK) == 0)
+                enabled = 1;
+        else
+                enabled = 0;
+
+        return enabled;
+}
+#endif //0
+
 int cg_enumerate_subgroups(const char *controller, const char *path, DIR **_d) {
         _cleanup_free_ char *fs = NULL;
         int r;
index 56598d2..2c91a86 100644 (file)
@@ -232,6 +232,8 @@ int cg_mask_supported(CGroupMask *ret);
 
 #if 0 /// UNNEEDED by elogind
 int cg_kernel_controllers(Set *controllers);
+
+bool cg_ns_supported(void);
 #endif // 0
 
 int cg_unified(void);
index f2a0e1d..848495e 100644 (file)
@@ -450,6 +450,10 @@ struct btrfs_ioctl_quota_ctl_args {
 #define CGROUP2_SUPER_MAGIC 0x63677270
 #endif
 
+#ifndef CLONE_NEWCGROUP
+#define CLONE_NEWCGROUP 0x02000000
+#endif
+
 #ifndef TMPFS_MAGIC
 #define TMPFS_MAGIC 0x01021994
 #endif