automount: make sure the expire event is restarted after a daemon-reload (#4265)
If the corresponding mount unit is deserialized after the automount unit then the expire event is set up in automount_trigger_notify(). However, if the mount unit is deserialized first then the automount unit is still in state AUTOMOUNT_DEAD and automount_trigger_notify() aborts without setting up the expire event. Explicitly call automount_start_expire() during coldplug to make sure that the expire event is set up as necessary. Fixes #4249.
This commit is contained in:
parent
1f4f4cf76c
commit
c080fbce9c
|
@ -271,6 +271,11 @@ static int automount_coldplug(Unit *u) {
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
(void) sd_event_source_set_description(a->pipe_event_source, "automount-io");
|
(void) sd_event_source_set_description(a->pipe_event_source, "automount-io");
|
||||||
|
if (a->deserialized_state == AUTOMOUNT_RUNNING) {
|
||||||
|
r = automount_start_expire(a);
|
||||||
|
if (r < 0)
|
||||||
|
log_unit_warning_errno(UNIT(a), r, "Failed to start expiration timer, ignoring: %m");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
automount_set_state(a, a->deserialized_state);
|
automount_set_state(a, a->deserialized_state);
|
||||||
|
|
Loading…
Reference in a new issue