From: Maxim Nestratov Date: Wed, 3 Jun 2015 21:10:00 +0000 (+0300) Subject: parallels: process '/' mount point correctly for containers X-Git-Tag: v1.2.17-rc1~228 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0b7b76cc4569653372bd552863dcf548fe90563a;p=thirdparty%2Flibvirt.git parallels: process '/' mount point correctly for containers Since we are going to add block devices as root disks we have to specify root mount point for boot block devices. But we shouldn't do this if a filesystem disk with such target mount point already exists. Signed-off-by: Maxim Nestratov --- diff --git a/src/parallels/parallels_sdk.c b/src/parallels/parallels_sdk.c index 7fcbd11b6b..1bc9c8bd18 100644 --- a/src/parallels/parallels_sdk.c +++ b/src/parallels/parallels_sdk.c @@ -3080,6 +3080,13 @@ static int prlsdkAddDisk(PRL_HANDLE sdkdom, if (prlsdkAddDeviceToBootList(sdkdom, devIndex, devType, 0) < 0) goto cleanup; + + /* If we add physical device as a boot disk to container + * we have to specify mount point for it */ + if (isCt) { + pret = PrlVmDevHd_SetMountPoint(sdkdisk, "/"); + prlsdkCheckRetGoto(pret, cleanup); + } } return 0; @@ -3314,6 +3321,13 @@ prlsdkDoApplyConfig(virConnectPtr conn, goto error; } + for (i = 0; i < def->nfss; i++) { + if (STREQ(def->fss[i]->dst, "/")) + needBoot = false; + if (prlsdkAddFS(sdkdom, def->fss[i]) < 0) + goto error; + } + for (i = 0; i < def->ndisks; i++) { bool bootDisk = false; @@ -3327,11 +3341,6 @@ prlsdkDoApplyConfig(virConnectPtr conn, goto error; } - for (i = 0; i < def->nfss; i++) { - if (prlsdkAddFS(sdkdom, def->fss[i]) < 0) - goto error; - } - return 0; error: