summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Mack <github@zonque.org>2016-03-10 15:24:21 +0100
committerDaniel Mack <github@zonque.org>2016-03-10 15:24:21 +0100
commitbffac070d0db53d85159598fc53728fd6aa2ee4d (patch)
tree848c57e50ada422d2f089e2a2147dace1ca89b52
parentead02a14ede96738250c3aac83adf9ecc1b7e2f1 (diff)
parent04a9393122d79a3d14506459b0f2c5348673464c (diff)
Merge pull request #2794 from jhol/dont-unmount-initramfs-mounts
core/mount: Don't unmount initramfs mounts
-rw-r--r--src/core/mount.c15
-rw-r--r--src/core/umount.c1
2 files changed, 10 insertions, 6 deletions
diff --git a/src/core/mount.c b/src/core/mount.c
index c0026e09b3..0fd880df5d 100644
--- a/src/core/mount.c
+++ b/src/core/mount.c
@@ -378,7 +378,8 @@ static bool should_umount(Mount *m) {
MountParameters *p;
if (path_equal(m->where, "/") ||
- path_equal(m->where, "/usr"))
+ path_equal(m->where, "/usr") ||
+ path_startswith(m->where, "/run/initramfs"))
return false;
p = get_mount_parameters(m);
@@ -402,13 +403,15 @@ static int mount_add_default_dependencies(Mount *m) {
if (UNIT(m)->manager->running_as != MANAGER_SYSTEM)
return 0;
- /* We do not add any default dependencies to / and /usr, since
- * they are guaranteed to stay mounted the whole time, since
- * our system is on it. Also, don't bother with anything
- * mounted below virtual file systems, it's also going to be
- * virtual, and hence not worth the effort. */
+ /* We do not add any default dependencies to /, /usr or
+ * /run/initramfs/, since they are guaranteed to stay
+ * mounted the whole time, since our system is on it.
+ * Also, don't bother with anything mounted below virtual
+ * file systems, it's also going to be virtual, and hence
+ * not worth the effort. */
if (path_equal(m->where, "/") ||
path_equal(m->where, "/usr") ||
+ path_startswith(m->where, "/run/initramfs") ||
path_startswith(m->where, "/proc") ||
path_startswith(m->where, "/sys") ||
path_startswith(m->where, "/dev"))
diff --git a/src/core/umount.c b/src/core/umount.c
index b953fcc152..c21a2be54e 100644
--- a/src/core/umount.c
+++ b/src/core/umount.c
@@ -412,6 +412,7 @@ static int mount_points_list_umount(MountPoint **head, bool *changed, bool log_e
#ifndef HAVE_SPLIT_USR
|| path_equal(m->path, "/usr")
#endif
+ || path_startswith(m->path, "/run/initramfs")
)
continue;