From: Michael Tremer Date: Sat, 14 Dec 2024 14:37:06 +0000 (+0000) Subject: cgroups: Don't automatically kill when destroying a cgroup X-Git-Tag: 0.9.30~711 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eb34399624d2b2ffbbcd7db9727558f51c1d0ad9;p=pakfire.git cgroups: Don't automatically kill when destroying a cgroup Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/cgroup.c b/src/libpakfire/cgroup.c index 477325cce..5bef076d1 100644 --- a/src/libpakfire/cgroup.c +++ b/src/libpakfire/cgroup.c @@ -478,16 +478,6 @@ struct pakfire_cgroup* pakfire_cgroup_unref(struct pakfire_cgroup* cgroup) { return NULL; } -/* - Immediately kills all processes in this cgroup -*/ -static int pakfire_cgroup_killall(struct pakfire_cgroup* cgroup) { - DEBUG(cgroup->ctx, "Killing all processes in %s\n", - pakfire_cgroup_path(cgroup)); - - return pakfire_cgroup_write(cgroup, "cgroup.kill", "1"); -} - int pakfire_cgroup_child(struct pakfire_cgroup** child, struct pakfire_cgroup* cgroup, const char* path, int flags) { return pakfire_cgroup_open(child, cgroup->ctx, cgroup, path, flags); @@ -505,11 +495,6 @@ int pakfire_cgroup_destroy(struct pakfire_cgroup* cgroup) { DEBUG(cgroup->ctx, "Destroying cgroup %s\n", pakfire_cgroup_path(cgroup)); - // Kill everything in this group - r = pakfire_cgroup_killall(cgroup); - if (r) - return r; - // Delete the directory r = unlinkat(cgroup->parent->fd, cgroup->name, AT_REMOVEDIR); if (r) { @@ -530,6 +515,16 @@ int pakfire_cgroup_fd(struct pakfire_cgroup* cgroup) { return cgroup->fd; } +/* + Immediately kills all processes in this cgroup +*/ +int pakfire_cgroup_killall(struct pakfire_cgroup* cgroup) { + DEBUG(cgroup->ctx, "Killing all processes in %s\n", + pakfire_cgroup_path(cgroup)); + + return pakfire_cgroup_write(cgroup, "cgroup.kill", "1"); +} + // Accounting int pakfire_cgroup_enable_accounting(struct pakfire_cgroup* cgroup) { diff --git a/src/libpakfire/include/pakfire/cgroup.h b/src/libpakfire/include/pakfire/cgroup.h index 443f101ea..f3d94139c 100644 --- a/src/libpakfire/include/pakfire/cgroup.h +++ b/src/libpakfire/include/pakfire/cgroup.h @@ -218,6 +218,9 @@ int pakfire_cgroup_destroy(struct pakfire_cgroup* cgroup); int pakfire_cgroup_fd(struct pakfire_cgroup* cgroup); +// Killall +int pakfire_cgroup_killall(struct pakfire_cgroup* cgroup); + // Accounting int pakfire_cgroup_enable_accounting(struct pakfire_cgroup* cgroup);