diff options
-rw-r--r-- | src/core/mount.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/core/mount.c b/src/core/mount.c index 5364b5dd7c..3d513a051e 100644 --- a/src/core/mount.c +++ b/src/core/mount.c @@ -618,7 +618,11 @@ static int mount_load(Unit *u) { 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; @@ -1436,6 +1440,14 @@ static int mount_add_one( } 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)) || |