Lennart Poettering bff934
From 4bfa638d43c05e8db052cd55818765bb3575a405 Mon Sep 17 00:00:00 2001
Lennart Poettering bff934
From: Dave Reisner <dreisner@archlinux.org>
Lennart Poettering bff934
Date: Fri, 10 Aug 2012 11:02:03 -0400
Lennart Poettering bff934
Subject: [PATCH] shutdown: recursively mark root as private before pivot
Lennart Poettering bff934
Lennart Poettering bff934
Because root is now recursively marked as shared on bootup, we need to
Lennart Poettering bff934
recursively mark root as private. This prevents a pivot_root failure on
Lennart Poettering bff934
shutdown:
Lennart Poettering bff934
Lennart Poettering bff934
  Cannot finalize remaining file systems and devices, giving up.
Lennart Poettering bff934
  pivot failed: Invalid argument
Lennart Poettering bff934
---
Lennart Poettering bff934
 src/core/shutdown.c | 2 +-
Lennart Poettering bff934
 1 file changed, 1 insertion(+), 1 deletion(-)
Lennart Poettering bff934
Lennart Poettering bff934
diff --git a/src/core/shutdown.c b/src/core/shutdown.c
Lennart Poettering bff934
index 105a604..0b7cbd8 100644
Lennart Poettering bff934
--- a/src/core/shutdown.c
Lennart Poettering bff934
+++ b/src/core/shutdown.c
Lennart Poettering bff934
@@ -109,7 +109,7 @@ static int pivot_to_new_root(void) {
Lennart Poettering bff934
           It works for pivot_root, but the ref count for the root device
Lennart Poettering bff934
           is not decreasing :-/
Lennart Poettering bff934
         */
Lennart Poettering bff934
-        if (mount(NULL, "/", NULL, MS_PRIVATE, NULL) < 0) {
Lennart Poettering bff934
+        if (mount(NULL, "/", NULL, MS_REC|MS_PRIVATE, NULL) < 0) {
Lennart Poettering bff934
                 log_error("Failed to make \"/\" private mount %m");
Lennart Poettering bff934
                 return -errno;
Lennart Poettering bff934
         }
Lennart Poettering bff934
-- 
Lennart Poettering bff934
1.7.11.2
Lennart Poettering bff934