mirror of
https://github.com/morgan9e/systemd
synced 2026-04-14 00:14:32 +09:00
cgroup-util: drop 'controller' argument from cg_get_keyed_attribute() and cg_is_empty()
The argument is completely unused. Let's drop it.
This commit is contained in:
@@ -610,7 +610,7 @@ int cg_pidref_get_path(const PidRef *pidref, char **ret_path) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int cg_is_empty(const char *controller, const char *path) {
|
||||
int cg_is_empty(const char *path) {
|
||||
_cleanup_free_ char *t = NULL;
|
||||
int r;
|
||||
|
||||
@@ -623,7 +623,7 @@ int cg_is_empty(const char *controller, const char *path) {
|
||||
if (empty_or_root(path))
|
||||
return false;
|
||||
|
||||
r = cg_get_keyed_attribute(controller, path, "cgroup.events", STRV_MAKE("populated"), &t);
|
||||
r = cg_get_keyed_attribute(path, "cgroup.events", STRV_MAKE("populated"), &t);
|
||||
if (r == -ENOENT)
|
||||
return true;
|
||||
if (r < 0)
|
||||
@@ -1551,7 +1551,6 @@ int cg_get_owner(const char *path, uid_t *ret_uid) {
|
||||
}
|
||||
|
||||
int cg_get_keyed_attribute(
|
||||
const char *controller,
|
||||
const char *path,
|
||||
const char *attribute,
|
||||
char * const *keys,
|
||||
@@ -1570,7 +1569,7 @@ int cg_get_keyed_attribute(
|
||||
*
|
||||
* If the attribute file doesn't exist at all returns ENOENT, if any key is not found returns ENXIO. */
|
||||
|
||||
r = cg_get_path(controller, path, attribute, &filename);
|
||||
r = cg_get_path(SYSTEMD_CGROUP_CONTROLLER, path, attribute, &filename);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
|
||||
@@ -181,7 +181,7 @@ int cg_get_attribute(const char *path, const char *attribute, char **ret);
|
||||
int cg_get_attribute_as_uint64(const char *path, const char *attribute, uint64_t *ret);
|
||||
int cg_get_attribute_as_bool(const char *path, const char *attribute);
|
||||
|
||||
int cg_get_keyed_attribute(const char *controller, const char *path, const char *attribute, char * const *keys, char **values);
|
||||
int cg_get_keyed_attribute(const char *path, const char *attribute, char * const *keys, char **values);
|
||||
|
||||
int cg_get_owner(const char *path, uid_t *ret_uid);
|
||||
|
||||
@@ -191,7 +191,7 @@ int cg_get_xattr(const char *path, const char *name, char **ret, size_t *ret_siz
|
||||
int cg_get_xattr_bool(const char *path, const char *name);
|
||||
int cg_remove_xattr(const char *path, const char *name);
|
||||
|
||||
int cg_is_empty(const char *controller, const char *path);
|
||||
int cg_is_empty(const char *path);
|
||||
|
||||
int cg_get_root_path(char **path);
|
||||
|
||||
|
||||
@@ -288,7 +288,7 @@ static int process_cpu(Group *g, unsigned iteration) {
|
||||
_cleanup_free_ char *val = NULL;
|
||||
uint64_t u;
|
||||
|
||||
r = cg_get_keyed_attribute(SYSTEMD_CGROUP_CONTROLLER, g->path, "cpu.stat", STRV_MAKE("usage_usec"), &val);
|
||||
r = cg_get_keyed_attribute(g->path, "cpu.stat", STRV_MAKE("usage_usec"), &val);
|
||||
if (IN_SET(r, -ENOENT, -ENXIO))
|
||||
return 0;
|
||||
if (r < 0)
|
||||
|
||||
@@ -2714,7 +2714,7 @@ int unit_cgroup_is_empty(Unit *u) {
|
||||
if (!crt->cgroup_path)
|
||||
return -EOWNERDEAD;
|
||||
|
||||
r = cg_is_empty(SYSTEMD_CGROUP_CONTROLLER, crt->cgroup_path);
|
||||
r = cg_is_empty(crt->cgroup_path);
|
||||
if (r < 0)
|
||||
log_unit_debug_errno(u, r, "Failed to determine whether cgroup %s is empty: %m", empty_to_root(crt->cgroup_path));
|
||||
return r;
|
||||
@@ -3033,7 +3033,6 @@ int unit_check_oom(Unit *u) {
|
||||
|
||||
if (ctx->memory_oom_group) {
|
||||
r = cg_get_keyed_attribute(
|
||||
"memory",
|
||||
crt->cgroup_path,
|
||||
"memory.events.local",
|
||||
STRV_MAKE("oom_group_kill"),
|
||||
@@ -3044,7 +3043,6 @@ int unit_check_oom(Unit *u) {
|
||||
|
||||
if (isempty(oom_kill)) {
|
||||
r = cg_get_keyed_attribute(
|
||||
"memory",
|
||||
crt->cgroup_path,
|
||||
"memory.events",
|
||||
STRV_MAKE("oom_kill"),
|
||||
@@ -3156,7 +3154,6 @@ static int unit_check_cgroup_events(Unit *u) {
|
||||
return 0;
|
||||
|
||||
r = cg_get_keyed_attribute(
|
||||
SYSTEMD_CGROUP_CONTROLLER,
|
||||
crt->cgroup_path,
|
||||
"cgroup.events",
|
||||
STRV_MAKE("populated", "frozen"),
|
||||
@@ -3601,7 +3598,7 @@ static int unit_get_cpu_usage_raw(const Unit *u, const CGroupRuntime *crt, nsec_
|
||||
_cleanup_free_ char *val = NULL;
|
||||
uint64_t us;
|
||||
|
||||
r = cg_get_keyed_attribute("cpu", crt->cgroup_path, "cpu.stat", STRV_MAKE("usage_usec"), &val);
|
||||
r = cg_get_keyed_attribute(crt->cgroup_path, "cpu.stat", STRV_MAKE("usage_usec"), &val);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@@ -4037,7 +4034,6 @@ static int unit_cgroup_freezer_kernel_state(Unit *u, FreezerState *ret) {
|
||||
return -EOWNERDEAD;
|
||||
|
||||
r = cg_get_keyed_attribute(
|
||||
SYSTEMD_CGROUP_CONTROLLER,
|
||||
crt->cgroup_path,
|
||||
"cgroup.events",
|
||||
STRV_MAKE("frozen"),
|
||||
|
||||
@@ -2015,7 +2015,7 @@ static int cgroup_good(Service *s) {
|
||||
if (!s->cgroup_runtime || !s->cgroup_runtime->cgroup_path)
|
||||
return 0;
|
||||
|
||||
r = cg_is_empty(SYSTEMD_CGROUP_CONTROLLER, s->cgroup_runtime->cgroup_path);
|
||||
r = cg_is_empty(s->cgroup_runtime->cgroup_path);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
|
||||
@@ -457,7 +457,7 @@ static int show_unit_cgroup(
|
||||
|
||||
/* Fallback for older systemd versions where the GetUnitProcesses() call is not yet available */
|
||||
|
||||
if (cg_is_empty(SYSTEMD_CGROUP_CONTROLLER, cgroup) != 0 && leader <= 0)
|
||||
if (cg_is_empty(cgroup) != 0 && leader <= 0)
|
||||
return 0;
|
||||
|
||||
show_cgroup_and_extra(cgroup, prefix, c, &leader, leader > 0, get_output_flags());
|
||||
|
||||
@@ -596,7 +596,7 @@ static int machine_dispatch_cgroup_empty(sd_event_source *s, const struct inotif
|
||||
|
||||
assert(m->cgroup);
|
||||
|
||||
r = cg_is_empty(SYSTEMD_CGROUP_CONTROLLER, m->cgroup);
|
||||
r = cg_is_empty(m->cgroup);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to determine if cgroup '%s' is empty: %m", m->cgroup);
|
||||
|
||||
@@ -782,7 +782,7 @@ bool machine_may_gc(Machine *m, bool drop_not_started) {
|
||||
}
|
||||
|
||||
if (m->cgroup) {
|
||||
r = cg_is_empty(SYSTEMD_CGROUP_CONTROLLER, m->cgroup);
|
||||
r = cg_is_empty(m->cgroup);
|
||||
if (IN_SET(r, 0, -ENOENT))
|
||||
return true;
|
||||
if (r < 0)
|
||||
|
||||
@@ -452,7 +452,7 @@ static int show_unit_cgroup(
|
||||
|
||||
/* Fallback for older systemd versions where the GetUnitProcesses() call is not yet available */
|
||||
|
||||
if (cg_is_empty(SYSTEMD_CGROUP_CONTROLLER, cgroup) != 0 && leader <= 0)
|
||||
if (cg_is_empty(cgroup) != 0 && leader <= 0)
|
||||
return 0;
|
||||
|
||||
show_cgroup_and_extra(cgroup, "\t\t ", c, &leader, leader > 0, get_output_flags());
|
||||
|
||||
@@ -451,7 +451,7 @@ int oomd_cgroup_context_acquire(const char *path, OomdCGroupContext **ret) {
|
||||
else if (r < 0)
|
||||
return log_debug_errno(r, "Error getting memory.swap.current from %s: %m", path);
|
||||
|
||||
r = cg_get_keyed_attribute(SYSTEMD_CGROUP_CONTROLLER, path, "memory.stat", STRV_MAKE("pgscan"), &val);
|
||||
r = cg_get_keyed_attribute(path, "memory.stat", STRV_MAKE("pgscan"), &val);
|
||||
if (r < 0)
|
||||
return log_debug_errno(r, "Error getting pgscan from memory.stat under %s: %m", path);
|
||||
|
||||
|
||||
@@ -97,7 +97,7 @@ TEST(oomd_cgroup_kill) {
|
||||
bool empty = false;
|
||||
for (size_t t = 0; t < 100; t++) {
|
||||
usleep_safe(100 * USEC_PER_MSEC);
|
||||
ASSERT_OK(r = cg_is_empty(SYSTEMD_CGROUP_CONTROLLER, subcgroup));
|
||||
ASSERT_OK(r = cg_is_empty(subcgroup));
|
||||
if (r > 0) {
|
||||
empty = true;
|
||||
break;
|
||||
|
||||
@@ -254,7 +254,7 @@ int show_cgroup_by_path(
|
||||
if (!k)
|
||||
return -ENOMEM;
|
||||
|
||||
if (!(flags & OUTPUT_SHOW_ALL) && cg_is_empty(NULL, k) > 0)
|
||||
if (!(flags & OUTPUT_SHOW_ALL) && cg_is_empty(path_startswith(k, "/sys/fs/cgroup/")) > 0)
|
||||
continue;
|
||||
|
||||
if (!shown_pids) {
|
||||
|
||||
@@ -59,10 +59,8 @@ TEST(cg_create) {
|
||||
ASSERT_TRUE(path_equal(path, strjoina("/sys/fs/cgroup", test_d)));
|
||||
free(path);
|
||||
|
||||
ASSERT_OK_POSITIVE(cg_is_empty(SYSTEMD_CGROUP_CONTROLLER, test_a));
|
||||
ASSERT_OK_ZERO(cg_is_empty(SYSTEMD_CGROUP_CONTROLLER, test_b));
|
||||
ASSERT_OK_POSITIVE(cg_is_empty(NULL, test_a));
|
||||
ASSERT_OK_POSITIVE(cg_is_empty(NULL, test_b));
|
||||
ASSERT_OK_POSITIVE(cg_is_empty(test_a));
|
||||
ASSERT_OK_ZERO(cg_is_empty(test_b));
|
||||
|
||||
ASSERT_OK_ZERO(cg_kill_recursive(test_a, 0, 0, NULL, NULL, NULL));
|
||||
ASSERT_OK_POSITIVE(cg_kill_recursive(test_b, 0, 0, NULL, NULL, NULL));
|
||||
|
||||
@@ -436,7 +436,7 @@ TEST(cg_get_keyed_attribute) {
|
||||
if (cg_is_available() <= 0)
|
||||
return (void) log_tests_skipped("cgroupfs v2 is not mounted");
|
||||
|
||||
r = cg_get_keyed_attribute("cpu", "/init.scope", "no_such_file", STRV_MAKE("no_such_attr"), &val);
|
||||
r = cg_get_keyed_attribute("/init.scope", "no_such_file", STRV_MAKE("no_such_attr"), &val);
|
||||
if (ERRNO_IS_PRIVILEGE(r))
|
||||
return (void) log_tests_skipped_errno(r, "/sys/fs/cgroup not accessible");
|
||||
|
||||
@@ -446,20 +446,20 @@ TEST(cg_get_keyed_attribute) {
|
||||
if (access("/sys/fs/cgroup/init.scope/cpu.stat", R_OK) < 0)
|
||||
return (void) log_tests_skipped_errno(errno, "/init.scope/cpu.stat not accessible");
|
||||
|
||||
assert_se(cg_get_keyed_attribute("cpu", "/init.scope", "cpu.stat", STRV_MAKE("no_such_attr"), &val) == -ENXIO);
|
||||
assert_se(cg_get_keyed_attribute("/init.scope", "cpu.stat", STRV_MAKE("no_such_attr"), &val) == -ENXIO);
|
||||
ASSERT_NULL(val);
|
||||
|
||||
assert_se(cg_get_keyed_attribute("cpu", "/init.scope", "cpu.stat", STRV_MAKE("usage_usec"), &val) == 0);
|
||||
assert_se(cg_get_keyed_attribute("/init.scope", "cpu.stat", STRV_MAKE("usage_usec"), &val) == 0);
|
||||
val = mfree(val);
|
||||
|
||||
assert_se(cg_get_keyed_attribute("cpu", "/init.scope", "cpu.stat", STRV_MAKE("usage_usec", "no_such_attr"), vals3) == -ENXIO);
|
||||
assert_se(cg_get_keyed_attribute("/init.scope", "cpu.stat", STRV_MAKE("usage_usec", "no_such_attr"), vals3) == -ENXIO);
|
||||
|
||||
assert_se(cg_get_keyed_attribute("cpu", "/init.scope", "cpu.stat",
|
||||
assert_se(cg_get_keyed_attribute("/init.scope", "cpu.stat",
|
||||
STRV_MAKE("usage_usec", "user_usec", "system_usec"), vals3) == 0);
|
||||
for (size_t i = 0; i < 3; i++)
|
||||
free(vals3[i]);
|
||||
|
||||
assert_se(cg_get_keyed_attribute("cpu", "/init.scope", "cpu.stat",
|
||||
assert_se(cg_get_keyed_attribute("/init.scope", "cpu.stat",
|
||||
STRV_MAKE("system_usec", "user_usec", "usage_usec"), vals3a) == 0);
|
||||
for (size_t i = 0; i < 3; i++)
|
||||
free(vals3a[i]);
|
||||
|
||||
Reference in New Issue
Block a user