mount: when the kernel reports a mount to be established reset all kinds of load...
authorLennart Poettering <lennart@poettering.net>
Wed, 28 Nov 2018 13:58:18 +0000 (14:58 +0100)
committerLennart Poettering <lennart@poettering.net>
Fri, 7 Dec 2018 16:35:32 +0000 (17:35 +0100)
It doesn't matter what kind of precise failure we had earlier with
loading the unit, let's report that it loaded successfully now, after
all the kernel is an OK source for that, like any other.

src/core/mount.c

index d0352c9..477c2cb 100644 (file)
@@ -1533,7 +1533,9 @@ static int mount_setup_existing_unit(
 
         MOUNT(u)->from_proc_self_mountinfo = true;
 
-        if (u->load_state == UNIT_NOT_FOUND) {
+        if (IN_SET(u->load_state, UNIT_NOT_FOUND, UNIT_BAD_SETTING, UNIT_ERROR)) {
+                /* The unit was previously not found or otherwise not loaded. Now that the unit shows up in
+                 * /proc/self/mountinfo we should reconsider it this, hence set it to UNIT_LOADED. */
                 u->load_state = UNIT_LOADED;
                 u->load_error = 0;