From c597baa8f92e708adda14a95a0ed1bfd6b85c1e6 Mon Sep 17 00:00:00 2001 From: Dwight Engen Date: Wed, 19 Feb 2014 16:44:19 -0500 Subject: [PATCH] fix mounts not propagating back to root mntns during create and clone Systems based on systemd mount the root shared by default. We don't want mounts done during creation by templates nor those done internally by bdev during rsync based clones to propagate to the root mntns. The create case already had the right check, but the mount call was missing "/", so it was failing. Signed-off-by: Dwight Engen Acked-by: Serge E. Hallyn --- src/lxc/bdev.c | 6 ++++++ src/lxc/lxccontainer.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/lxc/bdev.c b/src/lxc/bdev.c index 67fe72baf..ab1c87b35 100644 --- a/src/lxc/bdev.c +++ b/src/lxc/bdev.c @@ -2387,6 +2387,12 @@ static int rsync_rootfs(struct rsync_data *data) SYSERROR("unshare CLONE_NEWNS"); return -1; } + if (detect_shared_rootfs()) { + if (mount(NULL, "/", NULL, MS_SLAVE|MS_REC, NULL)) { + SYSERROR("Failed to make / rslave to run rsync"); + ERROR("Continuing..."); + } + } // If not a snapshot, copy the fs. if (orig->ops->mount(orig) < 0) { diff --git a/src/lxc/lxccontainer.c b/src/lxc/lxccontainer.c index b8b11d62f..0d89d1166 100644 --- a/src/lxc/lxccontainer.c +++ b/src/lxc/lxccontainer.c @@ -913,7 +913,7 @@ static bool create_run_template(struct lxc_container *c, char *tpath, bool quiet exit(1); } if (detect_shared_rootfs()) { - if (mount("", "", NULL, MS_SLAVE|MS_REC, 0)) { + if (mount(NULL, "/", NULL, MS_SLAVE|MS_REC, NULL)) { SYSERROR("Failed to make / rslave to run template"); ERROR("Continuing..."); } -- 2.47.2