]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
shutdown: disable recursive mount of /run/ on switching root
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 2 Aug 2023 17:50:09 +0000 (02:50 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 3 Aug 2023 18:57:32 +0000 (03:57 +0900)
Mounting /run/ recursively may be harmless, but not necessary on
shutdown as the new root is /run/initramfs.

Follow-up for b12d41a8bb7c99f7d7a1c7821a886d98b42d9ce0.

src/shutdown/shutdown.c

index 8395bb429d8488da12a4f3f25e25148c9bfcea3a..97a4050ae91bf52321c0a31804b09a2448026508 100644 (file)
@@ -167,11 +167,13 @@ static int switch_root_initramfs(void) {
          *
          * Disable sync() during switch-root, we after all sync'ed here plenty, and a dumb sync (as opposed
          * to the "smart" sync() we did here that looks at progress parameters) would defeat much of our
-         * efforts here. */
+         * efforts here. As the new root will be /run/initramfs/, it is not necessary to mount /run/
+         * recursively. */
         return switch_root(
                         /* new_root= */ "/run/initramfs",
                         /* old_root_after= */ "/oldroot",
-                        /* flags= */ SWITCH_ROOT_DONT_SYNC);
+                        /* flags= */ SWITCH_ROOT_DONT_SYNC |
+                                     SWITCH_ROOT_SKIP_RECURSIVE_RUN);
 }
 
 /* Read the following fields from /proc/meminfo: