]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
cgroup-util: drop unused cg_rmdir()
authorMike Yuan <me@yhndnzj.com>
Tue, 30 Jul 2024 20:29:00 +0000 (22:29 +0200)
committerMike Yuan <me@yhndnzj.com>
Fri, 2 Aug 2024 14:36:08 +0000 (16:36 +0200)
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.

src/basic/cgroup-util.c
src/basic/cgroup-util.h
src/shared/cgroup-setup.c
src/test/test-cgroup.c

index de618545d76d810d9dae8a70f23e3875852aada8..01af942cab83dd17fade64f23854a2d12b6a15f1 100644 (file)
@@ -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;
 }
 
index 5449d3889480d5b5c56fa32f477348deb2f3cd73..9d7573d9442e323a6ea1ce5f63d648182266bc40 100644 (file)
@@ -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);
index cf7a0eb27201cb36d3bf022b0101c303b8b863db..d415d13d41e6291e453e29a10dda1f8616e44ca9 100644 (file)
@@ -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;
 }
 
index 040e9e9c129a732da2401bdb7f84efbc7e7ddc74..461576c4cf9b7e2cd1fd95a43b4a02610ef33b41 100644 (file)
@@ -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) {