summaryrefslogtreecommitdiffstats
path: root/src/core/mount.c
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2020-11-17 01:13:59 +0100
committerLennart Poettering <lennart@poettering.net>2020-11-25 13:53:26 +0100
commit2fa0bd7d57863dffda89190a70a83c51bd7d114a (patch)
treea30ef664c9a3d15b07280e203cade037b628c533 /src/core/mount.c
parentMerge pull request #17715 from yuwata/specifier-follow-ups (diff)
downloadsystemd-2fa0bd7d57863dffda89190a70a83c51bd7d114a.tar.xz
systemd-2fa0bd7d57863dffda89190a70a83c51bd7d114a.zip
core/mount: mount command may fail after adding the corresponding proc mountinfo entry
Hopefully fixes #17617.
Diffstat (limited to 'src/core/mount.c')
-rw-r--r--src/core/mount.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/core/mount.c b/src/core/mount.c
index faa2cb0e03..8e83de0ba8 100644
--- a/src/core/mount.c
+++ b/src/core/mount.c
@@ -1948,6 +1948,15 @@ static int mount_process_proc_self_mountinfo(Manager *m) {
mount_enter_dead(mount, MOUNT_SUCCESS);
break;
+ case MOUNT_MOUNTING_DONE:
+ /* The mount command may add the corresponding proc mountinfo entry and
+ * then remove it because of an internal error. E.g., fuse.sshfs seems
+ * to do that when the connection fails. See #17617. To handle such the
+ * case, let's once set the state back to mounting. Then, the unit can
+ * correctly enter the failed state later in mount_sigchld(). */
+ mount_set_state(mount, MOUNT_MOUNTING);
+ break;
+
default:
break;
}