]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
cgroups: implement "driver" and "driver_version"
authorChristian Brauner <christian.brauner@ubuntu.com>
Mon, 19 Feb 2018 11:50:21 +0000 (12:50 +0100)
committerChristian Brauner <christian.brauner@ubuntu.com>
Mon, 19 Feb 2018 11:56:25 +0000 (12:56 +0100)
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/cgroups/cgfsng.c
src/lxc/cgroups/cgroup.c
src/lxc/cgroups/cgroup.h

index d610e95b5e3b4ba79e93681bf94bde2c3f78a8b6..ba2ad8ccd794c22ce4667db501e5fac0eb42badc 100644 (file)
@@ -2800,12 +2800,12 @@ static struct cgroup_ops cgfsng_ops = {
        .set = cgfsng_set,
        .unfreeze = cgfsng_unfreeze,
        .setup_limits = cgfsng_setup_limits,
-       .name = "cgroupfs-ng",
+       .driver = "cgfsng",
+       .version = "1.0.0",
        .attach = cgfsng_attach,
        .chown = cgfsng_chown,
        .mount_cgroup = cgfsng_mount,
        .nrtasks = cgfsng_nrtasks,
-       .driver = CGFSNG,
 
        /* unsupported */
        .create_legacy = NULL,
index 0886d39188e1e34b1eb9e2c1393f4a7b7048ed5d..9e7b26e00b9f7818c56c9638c06dcd6cc749b3f1 100644 (file)
@@ -39,14 +39,14 @@ extern struct cgroup_ops *cgfsng_ops_init(void);
 __attribute__((constructor)) void cgroup_ops_init(void)
 {
        if (ops) {
-               INFO("cgroup driver %s", ops->name);
+               INFO("Running with %s in version %s", ops->driver, ops->version);
                return;
        }
 
        DEBUG("cgroup_init");
        ops = cgfsng_ops_init();
        if (ops)
-               INFO("Initialized cgroup driver %s", ops->name);
+               INFO("Initialized cgroup driver %s", ops->driver);
 }
 
 bool cgroup_init(struct lxc_handler *handler)
@@ -57,7 +57,7 @@ bool cgroup_init(struct lxc_handler *handler)
        }
 
        if (ops) {
-               INFO("cgroup driver %s initing for %s", ops->name, handler->name);
+               INFO("cgroup driver %s initing for %s", ops->driver, handler->name);
                handler->cgroup_data = ops->init(handler);
        }
 
@@ -170,7 +170,7 @@ int cgroup_nrtasks(struct lxc_handler *handler)
                if (ops->nrtasks)
                        return ops->nrtasks(handler->cgroup_data);
                else
-                       WARN("cgroup driver \"%s\" doesn't implement nrtasks", ops->name);
+                       WARN("cgroup driver \"%s\" doesn't implement nrtasks", ops->driver);
        }
 
        return -1;
@@ -208,11 +208,6 @@ void cgroup_disconnect(void)
                ops->disconnect();
 }
 
-cgroup_driver_t cgroup_driver(void)
-{
-       return ops->driver;
-}
-
 #define INIT_SCOPE "/init.scope"
 void prune_init_scope(char *cg)
 {
index d288b4c728aaa1ad4db2a8e56da9d480ed506379..0f04e8b7ac6de4f1952f38f9d0257b15523fd492 100644 (file)
@@ -39,14 +39,9 @@ typedef enum {
         CGROUP_LAYOUT_UNIFIED =  2,
 } cgroup_layout_t;
 
-typedef enum {
-       CGFS,
-       CGMANAGER,
-       CGFSNG,
-} cgroup_driver_t;
-
 struct cgroup_ops {
-       const char *name;
+       const char *driver;
+       const char *version;
 
        void *(*init)(struct lxc_handler *handler);
        void (*destroy)(void *hdata, struct lxc_conf *conf);
@@ -66,7 +61,6 @@ struct cgroup_ops {
        bool (*mount_cgroup)(void *hdata, const char *root, int type);
        int (*nrtasks)(void *hdata);
        void (*disconnect)(void);
-       cgroup_driver_t driver;
 };
 
 extern bool cgroup_attach(const char *name, const char *lxcpath, pid_t pid);
@@ -87,7 +81,6 @@ extern int cgroup_num_hierarchies();
 extern bool cgroup_get_hierarchies(int i, char ***out);
 extern bool cgroup_unfreeze(struct lxc_handler *handler);
 extern void cgroup_disconnect(void);
-extern cgroup_driver_t cgroup_driver(void);
 
 extern void prune_init_scope(char *cg);
 extern bool is_crucial_cgroup_subsystem(const char *s);