From: Christian Brauner Date: Mon, 19 Feb 2018 11:50:21 +0000 (+0100) Subject: cgroups: implement "driver" and "driver_version" X-Git-Tag: lxc-3.0.0.beta1~22^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d2a4d1db03276ecd820e549e0393d4cdda887145;p=thirdparty%2Flxc.git cgroups: implement "driver" and "driver_version" Signed-off-by: Christian Brauner --- diff --git a/src/lxc/cgroups/cgfsng.c b/src/lxc/cgroups/cgfsng.c index d610e95b5..ba2ad8ccd 100644 --- a/src/lxc/cgroups/cgfsng.c +++ b/src/lxc/cgroups/cgfsng.c @@ -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, diff --git a/src/lxc/cgroups/cgroup.c b/src/lxc/cgroups/cgroup.c index 0886d3918..9e7b26e00 100644 --- a/src/lxc/cgroups/cgroup.c +++ b/src/lxc/cgroups/cgroup.c @@ -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) { diff --git a/src/lxc/cgroups/cgroup.h b/src/lxc/cgroups/cgroup.h index d288b4c72..0f04e8b7a 100644 --- a/src/lxc/cgroups/cgroup.h +++ b/src/lxc/cgroups/cgroup.h @@ -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);