]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core/device: introduce device_propagate_reload()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 1 Sep 2022 01:21:30 +0000 (10:21 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 20 Sep 2022 18:12:12 +0000 (03:12 +0900)
src/core/device.c

index e34141b18ed511b2ae4cc4d4ae7983993c089b46..442efa6ba22c0aa8286da397039c574d3c8c924a 100644 (file)
@@ -1029,22 +1029,29 @@ fail:
         device_shutdown(m);
 }
 
+static void device_propagate_reload(Manager *m, Device *d) {
+        int r;
+
+        assert(m);
+        assert(d);
+
+        if (d->state == DEVICE_DEAD)
+                return;
+
+        r = manager_propagate_reload(m, UNIT(d), JOB_REPLACE, NULL);
+        if (r < 0)
+                log_unit_warning_errno(UNIT(d), r, "Failed to propagate reload, ignoring: %m");
+}
+
 static void device_propagate_reload_by_sysfs(Manager *m, const char *sysfs) {
         Device *l;
-        int r;
 
         assert(m);
         assert(sysfs);
 
         l = hashmap_get(m->devices_by_sysfs, sysfs);
-        LIST_FOREACH(same_sysfs, d, l) {
-                if (d->state == DEVICE_DEAD)
-                        continue;
-
-                r = manager_propagate_reload(m, UNIT(d), JOB_REPLACE, NULL);
-                if (r < 0)
-                        log_unit_warning_errno(UNIT(d), r, "Failed to propagate reload, ignoring: %m");
-        }
+        LIST_FOREACH(same_sysfs, d, l)
+                device_propagate_reload(m, d);
 }
 
 static void device_propagate_reload_by_name(Manager *m, const char *path) {
@@ -1057,12 +1064,7 @@ static void device_propagate_reload_by_name(Manager *m, const char *path) {
         if (device_by_path(m, path, &u) < 0)
                 return;
 
-        if (DEVICE(u)->state == DEVICE_DEAD)
-                return;
-
-        r = manager_propagate_reload(m, u, JOB_REPLACE, NULL);
-        if (r < 0)
-                log_unit_warning_errno(u, r, "Failed to propagate reload, ignoring: %m");
+        device_propagate_reload(m, DEVICE(u));
 }
 
 static void device_remove_old_on_move(Manager *m, sd_device *dev) {