From: Tom Hromatka Date: Tue, 23 Mar 2021 14:57:28 +0000 (-0600) Subject: config.c: Add cgroup v2 support to cgclear X-Git-Tag: v2.0.rc1~5^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=83af70dd8e932282d49aa6db627741ebc0ac77b7;p=thirdparty%2Flibcgroup.git config.c: Add cgroup v2 support to cgclear When cgclear is invoked against a cgroup v2 controller, do not attempt to unmount the v2 controller. Signed-off-by: Tom Hromatka --- diff --git a/src/config.c b/src/config.c index 3ffa2637..11d1da48 100644 --- a/src/config.c +++ b/src/config.c @@ -1331,6 +1331,7 @@ static int cgroup_config_unload_controller(const struct cgroup_mount_point *moun struct cgroup_controller *cgc = NULL; char path[FILENAME_MAX]; void *handle; + enum cg_version_t version; cgroup = cgroup_new_cgroup("."); if (cgroup == NULL) @@ -1346,6 +1347,14 @@ static int cgroup_config_unload_controller(const struct cgroup_mount_point *moun if (ret != 0) goto out_error; + ret = cgroup_get_controller_version(mount_info->name, &version); + if (ret != 0) + goto out_error; + + if (version == CGROUP_V2) + /* do not unmount the controller */ + goto out_error; + /* unmount everything */ ret = cgroup_get_subsys_mount_point_begin(mount_info->name, &handle, path);