From: Yu Watanabe Date: Thu, 1 Sep 2022 01:21:30 +0000 (+0900) Subject: core/device: introduce device_propagate_reload() X-Git-Tag: v252-rc1~125^2~6 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9616f550b89029b3656f9938261575abac280611;p=thirdparty%2Fsystemd.git core/device: introduce device_propagate_reload() --- diff --git a/src/core/device.c b/src/core/device.c index e34141b18ed..442efa6ba22 100644 --- a/src/core/device.c +++ b/src/core/device.c @@ -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) {