]> xenbits.xensource.com Git - libvirt.git/commitdiff
parallels: process '/' mount point correctly for containers
authorMaxim Nestratov <mnestratov@parallels.com>
Wed, 3 Jun 2015 21:10:00 +0000 (00:10 +0300)
committerDmitry Guryanov <dguryanov@parallels.com>
Tue, 9 Jun 2015 13:45:16 +0000 (16:45 +0300)
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 <mnestratov@parallels.com>
src/parallels/parallels_sdk.c

index 7fcbd11b6b9d0c183b11a083ba2d3d6b2554c5b6..1bc9c8bd1801996b22620d47d642cceefd51bdba 100644 (file)
@@ -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: