From: Jérémy Rosen Date: Sat, 6 Jan 2018 21:55:22 +0000 (+0100) Subject: fix reload propagation for device alias X-Git-Tag: v237~59 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bf70ff2cff719905f9dc3f726eaba79780dcae55;p=thirdparty%2Fsystemd.git fix reload propagation for device alias udev-made .device aliases are not normal alias They are full-fledged units which are linked to the same sysfs path we need to explicitely propagate reload to all alias --- diff --git a/src/core/device.c b/src/core/device.c index dec6e74f951..7ce971ff3b0 100644 --- a/src/core/device.c +++ b/src/core/device.c @@ -798,12 +798,11 @@ static int device_dispatch_io(sd_event_source *source, int fd, uint32_t revents, if (streq(action, "change")) { _cleanup_free_ char *e = NULL; Unit *u; + Device *d, *l, *n; - r = unit_name_from_path(sysfs, ".device", &e); - if (r < 0) - log_error_errno(r, "Failed to generate unit name from device path: %m"); - else { - u = manager_get_unit(m, e); + l = hashmap_get(m->devices_by_sysfs, sysfs); + LIST_FOREACH_SAFE(same_sysfs, d, n, l) { + u = &d->meta; if (u && UNIT_VTABLE(u)->active_state(u) == UNIT_ACTIVE) { r = manager_propagate_reload(m, u, JOB_REPLACE, NULL); if (r < 0)