[libvirt] [PATCH] LXC: Ensure the init task of container comes from container

Gao feng gaofeng at cn.fujitsu.com
Fri Jun 14 05:54:52 UTC 2013


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 at 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




More information about the libvir-list mailing list