diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c
index 8067bc082bb..3c3dfdbfaba 100644
--- a/src/basic/cgroup-util.c
+++ b/src/basic/cgroup-util.c
@@ -2316,20 +2316,6 @@ static const char* const cgroup_io_limit_type_table[_CGROUP_IO_LIMIT_TYPE_MAX] =
 
 DEFINE_STRING_TABLE_LOOKUP(cgroup_io_limit_type, CGroupIOLimitType);
 
-bool is_cgroup_fs(const struct statfs *s) {
-        return is_fs_type(s, CGROUP_SUPER_MAGIC) ||
-               is_fs_type(s, CGROUP2_SUPER_MAGIC);
-}
-
-bool fd_is_cgroup_fs(int fd) {
-        struct statfs s;
-
-        if (fstatfs(fd, &s) < 0)
-                return -errno;
-
-        return is_cgroup_fs(&s);
-}
-
 static const char *const cgroup_controller_table[_CGROUP_CONTROLLER_MAX] = {
         [CGROUP_CONTROLLER_CPU] = "cpu",
         [CGROUP_CONTROLLER_CPUACCT] = "cpuacct",
diff --git a/src/basic/cgroup-util.h b/src/basic/cgroup-util.h
index 77294779fe8..3e840847942 100644
--- a/src/basic/cgroup-util.h
+++ b/src/basic/cgroup-util.h
@@ -329,9 +329,6 @@ static inline int cg_unified(void) {
 const char* cgroup_controller_to_string(CGroupController c) _const_;
 CGroupController cgroup_controller_from_string(const char *s) _pure_;
 
-bool is_cgroup_fs(const struct statfs *s);
-bool fd_is_cgroup_fs(int fd);
-
 typedef enum ManagedOOMMode {
         MANAGED_OOM_AUTO,
         MANAGED_OOM_KILL,
diff --git a/src/shared/rm-rf.c b/src/shared/rm-rf.c
index 2f50fa30ea6..39866e2258c 100644
--- a/src/shared/rm-rf.c
+++ b/src/shared/rm-rf.c
@@ -8,12 +8,12 @@
 
 #include "alloc-util.h"
 #include "btrfs-util.h"
-#include "cgroup-util.h"
 #include "dirent-util.h"
 #include "fd-util.h"
 #include "fs-util.h"
 #include "log.h"
 #include "macro.h"
+#include "missing_magic.h"
 #include "mountpoint-util.h"
 #include "path-util.h"
 #include "rm-rf.h"
@@ -24,7 +24,7 @@
  * after all: we can create arbitrary directory hierarchies in it, and hence can also use rm_rf() on it
  * to remove those again. */
 static bool is_physical_fs(const struct statfs *sfs) {
-        return !is_temporary_fs(sfs) && !is_cgroup_fs(sfs);
+        return !is_temporary_fs(sfs) && !is_fs_type(sfs, CGROUP2_SUPER_MAGIC);
 }
 
 static int patch_dirfd_mode(
diff --git a/src/test/test-cgroup-util.c b/src/test/test-cgroup-util.c
index cdf2ea83d7e..1f66d552d39 100644
--- a/src/test/test-cgroup-util.c
+++ b/src/test/test-cgroup-util.c
@@ -362,28 +362,6 @@ TEST(mask_supported, .sd_booted = true) {
                        yes_no(m & CGROUP_CONTROLLER_TO_MASK(c)));
 }
 
-TEST(is_cgroup_fs, .sd_booted = true) {
-        struct statfs sfs;
-        assert_se(statfs("/sys/fs/cgroup", &sfs) == 0);
-        if (is_temporary_fs(&sfs))
-                assert_se(statfs("/sys/fs/cgroup/systemd", &sfs) == 0);
-        assert_se(is_cgroup_fs(&sfs));
-}
-
-TEST(fd_is_cgroup_fs, .sd_booted = true) {
-        int fd;
-
-        fd = open("/sys/fs/cgroup", O_RDONLY|O_DIRECTORY|O_CLOEXEC|O_NOFOLLOW);
-        assert_se(fd >= 0);
-        if (fd_is_temporary_fs(fd)) {
-                fd = safe_close(fd);
-                fd = open("/sys/fs/cgroup/systemd", O_RDONLY|O_DIRECTORY|O_CLOEXEC|O_NOFOLLOW);
-                assert_se(fd >= 0);
-        }
-        assert_se(fd_is_cgroup_fs(fd));
-        fd = safe_close(fd);
-}
-
 TEST(cg_tests) {
         int all, hybrid, systemd, r;