On 22.03.2013 15:24, Daniel P. Berrange wrote: > From: "Daniel P. Berrange" <berra...@redhat.com> > > For a root filesystem with type=file or type=block, the LXC > container was forgetting to actually mount it, before doing > the pivot root step. > > Signed-off-by: Daniel P. Berrange <berra...@redhat.com> > --- > src/lxc/lxc_container.c | 52 > +++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 52 insertions(+) > > diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c > index be9bc6c..002dba1 100644 > --- a/src/lxc/lxc_container.c > +++ b/src/lxc/lxc_container.c > @@ -105,6 +105,9 @@ struct __lxc_child_argv { > int handshakefd; > }; > > +static int lxcContainerMountFSBlock(virDomainFSDefPtr fs, > + const char *srcprefix); > +
1: ^^^ > > /* > * reboot(LINUX_REBOOT_CMD_CAD_ON) will return -EINVAL > @@ -406,6 +409,51 @@ static int lxcContainerChildMountSort(const void *a, > const void *b) > # define MS_SLAVE (1<<19) > #endif > > +static int lxcContainerPrepareRoot(virDomainDefPtr def, > + virDomainFSDefPtr root) > +{ > + char *dst; > + char *tmp; > + > + if (root->type == VIR_DOMAIN_FS_TYPE_MOUNT) > + return 0; > + > + if (root->type == VIR_DOMAIN_FS_TYPE_FILE) { > + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", > + _("Unexpected root filesystem without loop device")); > + return -1; > + } > + > + if (root->type != VIR_DOMAIN_FS_TYPE_BLOCK) { > + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, > + _("Unsupported root filesystem type %s"), > + virDomainFSTypeToString(root->type)); > + return -1; > + } > + > + if (virAsprintf(&dst, "%s/%s.root", > + LXC_STATE_DIR, def->name) < 0) { > + virReportOOMError(); > + return -1; > + } > + > + tmp = root->dst; > + root->dst = dst; > + > + if (lxcContainerMountFSBlock(root, "") < 0) { > + root->dst = tmp; > + VIR_FREE(dst); > + return -1; > + } > + > + root->dst = tmp; > + root->type = VIR_DOMAIN_FS_TYPE_MOUNT; > + VIR_FREE(root->src); > + root->src = dst; > + > + return 0; > +} > + Any chance you can move this after the lxcContainerMountFSBlock() and hence avoid [1]? Not a show stopper though. ACK. Michal -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list