diff --git a/src/core/device.c b/src/core/device.c index 06bbbf8d2c..45149e7555 100644 --- a/src/core/device.c +++ b/src/core/device.c @@ -1064,7 +1064,6 @@ const UnitVTable device_vtable = { "Device\0" "Install\0", - .refuse_after = true, .gc_jobs = true, .init = device_init, diff --git a/src/core/unit.c b/src/core/unit.c index 2816bcef55..115938e6ce 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -2957,13 +2957,10 @@ int unit_add_dependency( return 0; } - if (d == UNIT_AFTER && UNIT_VTABLE(u)->refuse_after) { - log_unit_warning(u, "Requested dependency After=%s ignored (%s units cannot be delayed).", other->id, unit_type_to_string(u->type)); - return 0; - } - - if (d == UNIT_BEFORE && UNIT_VTABLE(other)->refuse_after) { - log_unit_warning(u, "Requested dependency Before=%s ignored (%s units cannot be delayed).", other->id, unit_type_to_string(other->type)); + /* Note that ordering a device unit after a unit is permitted since it + * allows to start its job running timeout at a specific time. */ + if (d == UNIT_BEFORE && other->type == UNIT_DEVICE) { + log_unit_warning(u, "Dependency Before=%s ignored (.device units cannot be delayed)", other->id); return 0; } diff --git a/src/core/unit.h b/src/core/unit.h index 2e103f7ab2..93d6f7092b 100644 --- a/src/core/unit.h +++ b/src/core/unit.h @@ -610,9 +610,6 @@ typedef struct UnitVTable { /* True if the unit type knows a failure state, and thus can be source of an OnFailure= dependency */ bool can_fail:1; - /* True if After= dependencies should be refused */ - bool refuse_after:1; - /* True if units of this type shall be startable only once and then never again */ bool once_only:1;