Richard found libvirt_lxc execs the lxc init programs within
the wrong rootfs context, we should run this init task from
the rootfs of container.
So chroot to the root directory of container, Make sure
libvirt_lxc execs the right lxc init program.
Signed-off-by: Gao feng <gaofeng(a)cn.fujitsu.com>
---
src/lxc/lxc_container.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c
index 181f6c8..4edff15 100644
--- a/src/lxc/lxc_container.c
+++ b/src/lxc/lxc_container.c
@@ -645,8 +645,9 @@ static int lxcContainerPivotRoot(virDomainFSDefPtr root)
goto err;
}
- /* CWD is undefined after pivot_root, so go to / */
- if (chdir("/") < 0)
+ /* CWD is undefined after pivot_root, so go to /,
+ * and chroot to the new root directroy */
+ if (chdir("/") < 0 || chroot(".") < 0)
goto err;
ret = 0;
--
1.8.1.4