]> xenbits.xensource.com Git - libvirt.git/commitdiff
vz: handle sourceless cdroms
authorMikhail Feoktistov <mfeoktistov@virtuozzo.com>
Thu, 14 Apr 2016 15:00:09 +0000 (18:00 +0300)
committerMaxim Nestratov <mnestratov@virtuozzo.com>
Tue, 19 Apr 2016 16:52:38 +0000 (19:52 +0300)
libvirt handles empty source as NULL, while vz sdk as
"" thus we need a bit of conversion.

Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
src/vz/vz_sdk.c

index 2e9544b1672057f15ac6af536ff7ad4e83bcf8a8..9b783af5e94c8388c2a71002bf2a111905d8b4f4 100644 (file)
@@ -565,7 +565,7 @@ prlsdkGetDiskInfo(vzDriverPtr driver,
     if (!(buf = prlsdkGetStringParamVar(PrlVmDev_GetFriendlyName, prldisk)))
         goto cleanup;
 
-    if (virDomainDiskSetSource(disk, buf) < 0)
+    if (*buf != '\0' && virDomainDiskSetSource(disk, buf) < 0)
         goto cleanup;
 
     if (prlsdkGetDiskId(prldisk, isCt, &disk->bus, &disk->dst) < 0)
@@ -3183,6 +3183,7 @@ static int prlsdkAddDisk(vzDriverPtr driver,
     PRL_DEVICE_TYPE devType;
     PRL_CLUSTERED_DEVICE_SUBTYPE scsiModel;
     char *dst = NULL;
+    const char *path = disk->src->path ? : "";
 
     if (disk->device == VIR_DOMAIN_DISK_DEVICE_DISK)
         devType = PDE_HARD_DISK;
@@ -3206,10 +3207,10 @@ static int prlsdkAddDisk(vzDriverPtr driver,
     pret = PrlVmDev_SetEmulatedType(sdkdisk, emutype);
     prlsdkCheckRetGoto(pret, cleanup);
 
-    pret = PrlVmDev_SetSysName(sdkdisk, disk->src->path);
+    pret = PrlVmDev_SetSysName(sdkdisk, path);
     prlsdkCheckRetGoto(pret, cleanup);
 
-    pret = PrlVmDev_SetFriendlyName(sdkdisk, disk->src->path);
+    pret = PrlVmDev_SetFriendlyName(sdkdisk, path);
     prlsdkCheckRetGoto(pret, cleanup);
 
     drive = &disk->info.addr.drive;