assert(u);
assert(u->load_state == UNIT_STUB);
- r = unit_load_fragment_and_dropin_optional(u);
+ if (m->from_proc_self_mountinfo)
+ r = unit_load_fragment_and_dropin_optional(u);
+ else
+ r = unit_load_fragment_and_dropin(u);
+
if (r < 0)
return r;
state == MOUNT_REMOUNTING_SIGKILL ||
state == MOUNT_UNMOUNTING_SIGTERM ||
state == MOUNT_UNMOUNTING_SIGKILL ||
- state == MOUNT_FAILED)
- mount_notify_automount(m, -ENODEV);
+ state == MOUNT_FAILED) {
+ if (state != old_state)
+ mount_notify_automount(m, -ENODEV);
+ }
if (state != old_state)
log_debug("%s changed %s -> %s",
} else {
delete = false;
free(e);
+
+ if (u->load_state == UNIT_ERROR) {
+ u->load_state = UNIT_LOADED;
+ u->load_error = 0;
+ r = mount_add_extras(MOUNT(u));
+ if (r < 0)
+ goto fail;
+ }
}
if (!(w = strdup(what)) ||
DEFINE_STRING_TABLE_LOOKUP(mount_result, MountResult);
const UnitVTable mount_vtable = {
- .suffix = ".mount",
.object_size = sizeof(Mount),
.sections =
"Unit\0"