diff --git a/src/core/cgroup.c b/src/core/cgroup.c index 03fdc7388f..73431fa5db 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 66ac9c91ec..381241f02d 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;