X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=selinux-mkdir.patch;fp=selinux-mkdir.patch;h=47a01f461c99eaab928a60f81c4d67f60f7059ea;hb=d137cb90003904ae7ac0a532fd9e0e3dab10275a;hp=0000000000000000000000000000000000000000;hpb=bdf8c383f1803655b00e3812424720a584adf702;p=libvirt.git diff --git a/selinux-mkdir.patch b/selinux-mkdir.patch new file mode 100644 index 0000000..47a01f4 --- /dev/null +++ b/selinux-mkdir.patch @@ -0,0 +1,49 @@ +libvirt lxc will fail to start when selinux is disabled. +error: Failed to start domain noroot +error: internal error guest failed to start: PATH=/bin:/sbin TERM=linux container=lxc-libvirt container_uuid=b9873916-3516-c199-8112-1592ff694a9e LIBVIRT_LXC_UUID=b9873916-3516-c199-8112-1592ff694a9e LIBVIRT_LXC_NAME=noroot /bin/sh +2013-01-09 11:04:05.384+0000: 1: info : libvirt version: 1.0.1 +2013-01-09 11:04:05.384+0000: 1: error : lxcContainerMountBasicFS:546 : Failed to mkdir /sys/fs/selinux: No such file or directory +2013-01-09 11:04:05.384+0000: 7536: info : libvirt version: 1.0.1 +2013-01-09 11:04:05.384+0000: 7536: error : virLXCControllerRun:1466 : error receiving signal from container: Input/output error +2013-01-09 11:04:05.404+0000: 7536: error : virCommandWait:2287 : internal error Child process (ip link del veth1) unexpected exit status 1: Cannot find device "veth1" + +fix this problem by checking if selinuxfs is mounted +in host before we try to create dir /sys/fs/selinux. + +Signed-off-by: Gao feng +--- + src/lxc/lxc_container.c | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c +index 9f22923..d7f4960 100644 +--- a/src/lxc/lxc_container.c ++++ b/src/lxc/lxc_container.c +@@ -540,13 +540,6 @@ static int lxcContainerMountBasicFS(bool pivotRoot, + VIR_DEBUG("Processing %s -> %s", + mnts[i].src, mnts[i].dst); + +- if (virFileMakePath(mnts[i].dst) < 0) { +- virReportSystemError(errno, +- _("Failed to mkdir %s"), +- mnts[i].src); +- goto cleanup; +- } +- + srcpath = mnts[i].src; + + /* Skip if mount doesn't exist in source */ +@@ -554,6 +547,13 @@ static int lxcContainerMountBasicFS(bool pivotRoot, + (access(srcpath, R_OK) < 0)) + continue; + ++ if (virFileMakePath(mnts[i].dst) < 0) { ++ virReportSystemError(errno, ++ _("Failed to mkdir %s"), ++ mnts[i].src); ++ goto cleanup; ++ } ++ + VIR_DEBUG("Mount %s on %s type=%s flags=%x, opts=%s", + srcpath, mnts[i].dst, mnts[i].type, mnts[i].mflags, mnts[i].opts); + if (mount(srcpath, mnts[i].dst, mnts[i].type, mnts[i].mflags, mnts[i].opts) < 0) {