[libvirt] [PATCH] libvirt: lxc: don't mkdir when selinux is disabled

Daniel P. Berrange berrange at redhat.com
Tue Jan 15 09:26:06 UTC 2013


On Tue, Jan 15, 2013 at 10:13:36AM +0800, Gao feng wrote:
> On 2013/01/09 19:20, Gao feng wrote:
> > 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 <gaofeng at cn.fujitsu.com>
> > ---
> 
> Ping...
> 
> >  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) {
> > 

ACK


Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list