From: Mike Yuan Date: Mon, 13 Nov 2023 13:24:34 +0000 (+0800) Subject: core: use FOREACH_ARRAY and RET_GATHER more X-Git-Tag: v255-rc2~20^2~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cbd2abbbe736f2fde90408f40b26d0fbccdcbf48;p=thirdparty%2Fsystemd.git core: use FOREACH_ARRAY and RET_GATHER more --- diff --git a/src/core/cgroup.c b/src/core/cgroup.c index 03fdc7388fc..73431fa5db2 100644 --- a/src/core/cgroup.c +++ b/src/core/cgroup.c @@ -4391,19 +4391,19 @@ int unit_reset_cpu_accounting(Unit *u) { } int unit_reset_ip_accounting(Unit *u) { - int r = 0, q = 0; + int r = 0; assert(u); if (u->ip_accounting_ingress_map_fd >= 0) - r = bpf_firewall_reset_accounting(u->ip_accounting_ingress_map_fd); + RET_GATHER(r, bpf_firewall_reset_accounting(u->ip_accounting_ingress_map_fd)); if (u->ip_accounting_egress_map_fd >= 0) - q = bpf_firewall_reset_accounting(u->ip_accounting_egress_map_fd); + RET_GATHER(r, bpf_firewall_reset_accounting(u->ip_accounting_egress_map_fd)); zero(u->ip_accounting_extra); - return r < 0 ? r : q; + return r; } int unit_reset_io_accounting(Unit *u) { @@ -4411,8 +4411,8 @@ int unit_reset_io_accounting(Unit *u) { assert(u); - for (CGroupIOAccountingMetric i = 0; i < _CGROUP_IO_ACCOUNTING_METRIC_MAX; i++) - u->io_accounting_last[i] = UINT64_MAX; + FOREACH_ARRAY(i, u->io_accounting_last, _CGROUP_IO_ACCOUNTING_METRIC_MAX) + *i = UINT64_MAX; r = unit_get_io_accounting_raw(u, u->io_accounting_base); if (r < 0) { @@ -4424,15 +4424,15 @@ int unit_reset_io_accounting(Unit *u) { } int unit_reset_accounting(Unit *u) { - int r, q, v; + int r = 0; assert(u); - r = unit_reset_cpu_accounting(u); - q = unit_reset_io_accounting(u); - v = unit_reset_ip_accounting(u); + RET_GATHER(r, unit_reset_cpu_accounting(u)); + RET_GATHER(r, unit_reset_io_accounting(u)); + RET_GATHER(r, unit_reset_ip_accounting(u)); - return r < 0 ? r : q < 0 ? q : v; + return r; } void unit_invalidate_cgroup(Unit *u, CGroupMask m) { diff --git a/src/core/unit.c b/src/core/unit.c index 66ac9c91ec0..381241f02de 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -121,8 +121,9 @@ Unit* unit_new(Manager *m, size_t size) { u->ip_accounting_ingress_map_fd = -EBADF; u->ip_accounting_egress_map_fd = -EBADF; - for (CGroupIOAccountingMetric i = 0; i < _CGROUP_IO_ACCOUNTING_METRIC_MAX; i++) - u->io_accounting_last[i] = UINT64_MAX; + + FOREACH_ARRAY(i, u->io_accounting_last, _CGROUP_IO_ACCOUNTING_METRIC_MAX) + *i = UINT64_MAX; u->ipv4_allow_map_fd = -EBADF; u->ipv6_allow_map_fd = -EBADF;