diff mbox

[LEDE-DEV,procd,6/7] jail: ensure mounts are not MS_SHARED to avoid pivot_root() failure

Message ID 1464565158-18043-6-git-send-email-champetier.etienne@gmail.com
State Accepted
Headers show

Commit Message

Etienne Champetier May 29, 2016, 11:39 p.m. UTC
By default mounts are MS_PRIVATE (kernel default) but systemd
decided to make it MS_SHARED by default since v188
https://github.com/systemd/systemd/commit/b3ac5f8cb98757416d8660023d6564a7c411f0a0

This patch fixes ujail on systemd distro (useful for development at least).

Signed-off-by: Etienne CHAMPETIER <champetier.etienne@gmail.com>
---
 jail/jail.c | 6 ++++++
 1 file changed, 6 insertions(+)
diff mbox

Patch

diff --git a/jail/jail.c b/jail/jail.c
index b3f27d3..e425254 100644
--- a/jail/jail.c
+++ b/jail/jail.c
@@ -129,6 +129,12 @@  static int build_jail_fs(void)
 		return -1;
 	}
 
+	/* oldroot can't be MS_SHARED else pivot_root() fails */
+	if (mount("none", "/", NULL, MS_REC|MS_PRIVATE, NULL)) {
+		ERROR("private mount failed %s\n", strerror(errno));
+		return -1;
+	}
+
 	if (mount("tmpfs", jail_root, "tmpfs", MS_NOATIME, "mode=0755")) {
 		ERROR("tmpfs mount failed %s\n", strerror(errno));
 		return -1;