salimma / rpms / systemd

Forked from rpms/systemd 3 years ago
Clone
Blob Blame History Raw
From d320840e2e9bb8156fa4007c09a0673276c44d97 Mon Sep 17 00:00:00 2001
From: Dave Reisner <dreisner@archlinux.org>
Date: Fri, 10 Aug 2012 11:02:03 -0400
Subject: [PATCH] shutdown: recursively mark root as private before pivot

Because root is now recursively marked as shared on bootup, we need to
recursively mark root as private. This prevents a pivot_root failure on
shutdown:

  Cannot finalize remaining file systems and devices, giving up.
  pivot failed: Invalid argument
(cherry picked from commit 4bfa638d43c05e8db052cd55818765bb3575a405)
---
 src/core/shutdown.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/core/shutdown.c b/src/core/shutdown.c
index 5ba3bc2..a6744e5 100644
--- a/src/core/shutdown.c
+++ b/src/core/shutdown.c
@@ -276,7 +276,7 @@ static int pivot_to_new_root(void) {
           It works for pivot_root, but the ref count for the root device
           is not decreasing :-/
         */
-        if (mount(NULL, "/", NULL, MS_PRIVATE, NULL) < 0) {
+        if (mount(NULL, "/", NULL, MS_REC|MS_PRIVATE, NULL) < 0) {
                 log_error("Failed to make \"/\" private mount %m");
                 return -errno;
         }