chiark / gitweb /
core: keep mountinfo .mounts until late shutdown
authorUmut Tezduyar <umut@tezduyar.com>
Mon, 11 Mar 2013 15:30:10 +0000 (16:30 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sat, 16 Mar 2013 02:55:24 +0000 (22:55 -0400)
.mount units coming from /proc/self/mountinfo file are
unmounted after local-fs.target is reached during shutdown.

Problem: .mount units popping up in mountinfo file are
added to systemd without any dependency. For that reason,
they are the first one to be unmounted during shutdown.
Whichever program mounted the file system deserves a
chance to also unmount it. This patch ensures that
/proc/self/mountinfo units will be unmounted after
local-fs.target during shutdown (if they haven't been
unmounted already)

src/core/mount.c

index 73a7832430e39facc6d078d19a169bb806451c28..7a1b411c7b67f48f0221db6e43b4a152062aa66f 100644 (file)
@@ -1501,6 +1501,14 @@ static int mount_add_one(
                         goto fail;
                 }
 
+                r = unit_add_dependency_by_name(u, UNIT_BEFORE, SPECIAL_LOCAL_FS_TARGET, NULL, true);
+                if (r < 0)
+                        goto fail;
+
+                r = unit_add_dependency_by_name(u, UNIT_CONFLICTS, SPECIAL_UMOUNT_TARGET, NULL, true);
+                if (r < 0)
+                        goto fail;
+
                 unit_add_to_load_queue(u);
         } else {
                 delete = false;