From: Mike Yuan Date: Tue, 30 Jul 2024 20:29:00 +0000 (+0200) Subject: cgroup-util: drop unused cg_rmdir() X-Git-Tag: v257-rc1~753^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=031860d6cbe430fb080ec0986950b72c4718e59a;p=thirdparty%2Fsystemd.git cgroup-util: drop unused cg_rmdir() When removing a cgroup, we always want to eliminate subcgroups first, i.e. use cg_trim(). And cg_rmdir() (along with CGROUP_REMOVE flag) is simply unused. Kill it. --- diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c index de618545d76..01af942cab8 100644 --- a/src/basic/cgroup-util.c +++ b/src/basic/cgroup-util.c @@ -291,31 +291,6 @@ int cg_read_subgroup(DIR *d, char **ret) { return 0; } -int cg_rmdir(const char *controller, const char *path) { - _cleanup_free_ char *p = NULL; - int r; - - r = cg_get_path(controller, path, NULL, &p); - if (r < 0) - return r; - - r = rmdir(p); - if (r < 0 && errno != ENOENT) - return -errno; - - r = cg_hybrid_unified(); - if (r <= 0) - return r; - - if (streq(controller, SYSTEMD_CGROUP_CONTROLLER)) { - r = cg_rmdir(SYSTEMD_CGROUP_CONTROLLER_LEGACY, path); - if (r < 0) - log_warning_errno(r, "Failed to remove compat systemd cgroup %s: %m", path); - } - - return 0; -} - static int cg_kill_items( const char *path, int sig, @@ -532,12 +507,6 @@ int cg_kill_recursive( } } - if (FLAGS_SET(flags, CGROUP_REMOVE)) { - r = cg_rmdir(SYSTEMD_CGROUP_CONTROLLER, path); - if (!IN_SET(r, -ENOENT, -EBUSY)) - RET_GATHER(ret, log_debug_errno(r, "Failed to remove cgroup '%s': %m", path)); - } - return ret; } diff --git a/src/basic/cgroup-util.h b/src/basic/cgroup-util.h index 5449d388948..9d7573d9442 100644 --- a/src/basic/cgroup-util.h +++ b/src/basic/cgroup-util.h @@ -186,9 +186,8 @@ int cg_cgroupid_open(int fsfd, uint64_t id); typedef enum CGroupFlags { CGROUP_SIGCONT = 1 << 0, CGROUP_IGNORE_SELF = 1 << 1, - CGROUP_REMOVE = 1 << 2, - CGROUP_DONT_SKIP_UNMAPPED = 1 << 3, - CGROUP_NO_PIDFD = 1 << 4, + CGROUP_DONT_SKIP_UNMAPPED = 1 << 2, + CGROUP_NO_PIDFD = 1 << 3, } CGroupFlags; int cg_enumerate_processes(const char *controller, const char *path, FILE **ret); @@ -214,8 +213,6 @@ int cg_get_path_and_check(const char *controller, const char *path, const char * int cg_pid_get_path(const char *controller, pid_t pid, char **ret); int cg_pidref_get_path(const char *controller, const PidRef *pidref, char **ret); -int cg_rmdir(const char *controller, const char *path); - int cg_is_threaded(const char *path); int cg_is_delegated(const char *path); diff --git a/src/shared/cgroup-setup.c b/src/shared/cgroup-setup.c index cf7a0eb2720..d415d13d41e 100644 --- a/src/shared/cgroup-setup.c +++ b/src/shared/cgroup-setup.c @@ -917,12 +917,6 @@ int cg_migrate_recursive( if (r < 0 && ret >= 0) ret = r; - if (flags & CGROUP_REMOVE) { - r = cg_rmdir(cfrom, pfrom); - if (r < 0 && ret >= 0 && !IN_SET(r, -ENOENT, -EBUSY)) - return r; - } - return ret; } diff --git a/src/test/test-cgroup.c b/src/test/test-cgroup.c index 040e9e9c129..461576c4cf9 100644 --- a/src/test/test-cgroup.c +++ b/src/test/test-cgroup.c @@ -122,12 +122,7 @@ TEST(cg_create) { assert_se(cg_kill_recursive(test_a, 0, 0, NULL, NULL, NULL) > 0); assert_se(cg_kill_recursive(test_b, 0, 0, NULL, NULL, NULL) == 0); - (void) cg_trim(SYSTEMD_CGROUP_CONTROLLER, test_b, false); - - assert_se(cg_rmdir(SYSTEMD_CGROUP_CONTROLLER, test_b) == 0); - assert_se(cg_rmdir(SYSTEMD_CGROUP_CONTROLLER, test_a) < 0); - assert_se(cg_migrate_recursive(SYSTEMD_CGROUP_CONTROLLER, test_a, SYSTEMD_CGROUP_CONTROLLER, here, 0) > 0); - assert_se(cg_rmdir(SYSTEMD_CGROUP_CONTROLLER, test_a) == 0); + ASSERT_OK(cg_trim(SYSTEMD_CGROUP_CONTROLLER, test_b, true)); } TEST(id) {