From: Dave Reisner Date: Fri, 10 Aug 2012 15:02:03 +0000 (-0400) Subject: shutdown: recursively mark root as private before pivot X-Git-Tag: v189~97 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=4bfa638d43c05e8db052cd55818765bb3575a405;ds=sidebyside 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 --- diff --git a/src/core/shutdown.c b/src/core/shutdown.c index 105a60454..0b7cbd8d3 100644 --- a/src/core/shutdown.c +++ b/src/core/shutdown.c @@ -109,7 +109,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; }