]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core: use FOREACH_ARRAY and RET_GATHER more
authorMike Yuan <me@yhndnzj.com>
Mon, 13 Nov 2023 13:24:34 +0000 (21:24 +0800)
committerMike Yuan <me@yhndnzj.com>
Mon, 13 Nov 2023 15:39:14 +0000 (23:39 +0800)
src/core/cgroup.c
src/core/unit.c

index 03fdc7388fc9dfa24f0a6966b0c9f13426ac91c0..73431fa5db209f468934294c6f60629b97810f53 100644 (file)
@@ -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) {
index 66ac9c91ec0053fb8c2fb7fc265a8803e2c054df..381241f02de6fddf14c8b56b680d28280aa4750d 100644 (file)
@@ -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;