From: Peter Krempa Date: Wed, 18 Jul 2018 15:11:50 +0000 (+0200) Subject: qemu: Replace qemuDomainDiskSourceDiffers by virStorageSourceIsSameLocation X-Git-Tag: v4.6.0-rc1~134 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=80250f70c506beb31720b2d463edd0c78e0ed887;p=thirdparty%2Flibvirt.git qemu: Replace qemuDomainDiskSourceDiffers by virStorageSourceIsSameLocation Now that we have a saner replacement for checking if the disk source is the same use it instead of formatting qemu command-line chunks. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 9750521726..de056272e8 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -8705,40 +8705,6 @@ qemuDomainDiskChainElementPrepare(virQEMUDriverPtr driver, } -bool -qemuDomainDiskSourceDiffers(virDomainDiskDefPtr disk, - virDomainDiskDefPtr origDisk) -{ - char *diskSrc = NULL, *origDiskSrc = NULL; - bool diskEmpty, origDiskEmpty; - bool ret = true; - - diskEmpty = virStorageSourceIsEmpty(disk->src); - origDiskEmpty = virStorageSourceIsEmpty(origDisk->src); - - if (diskEmpty && origDiskEmpty) - return false; - - if (diskEmpty ^ origDiskEmpty) - return true; - - /* This won't be a network storage, so no need to get the diskPriv - * in order to fetch the secret, thus NULL for param2 */ - if (qemuGetDriveSourceString(disk->src, NULL, &diskSrc) < 0 || - qemuGetDriveSourceString(origDisk->src, NULL, &origDiskSrc) < 0) - goto cleanup; - - /* So far in qemu disk sources are considered different - * if either path to disk or its format changes. */ - ret = virDomainDiskGetFormat(disk) != virDomainDiskGetFormat(origDisk) || - STRNEQ_NULLABLE(diskSrc, origDiskSrc); - cleanup: - VIR_FREE(diskSrc); - VIR_FREE(origDiskSrc); - return ret; -} - - /* * Makes sure the @disk differs from @orig_disk only by the source * path and nothing else. Fields that are being checked and the diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 22c3a51354..bff293fc0a 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -720,9 +720,6 @@ int qemuDomainDetermineDiskChain(virQEMUDriverPtr driver, virDomainDiskDefPtr disk, bool report_broken); -bool qemuDomainDiskSourceDiffers(virDomainDiskDefPtr disk, - virDomainDiskDefPtr origDisk); - bool qemuDomainDiskChangeSupported(virDomainDiskDefPtr disk, virDomainDiskDefPtr orig_disk); diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index a7279ecc64..ca04be30c8 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -7871,7 +7871,7 @@ qemuDomainChangeDiskLive(virDomainObjPtr vm, if (!qemuDomainDiskChangeSupported(disk, orig_disk)) goto cleanup; - if (qemuDomainDiskSourceDiffers(disk, orig_disk)) { + if (!virStorageSourceIsSameLocation(disk->src, orig_disk->src)) { /* Disk source can be changed only for removable devices */ if (disk->device != VIR_DOMAIN_DISK_DEVICE_CDROM && disk->device != VIR_DOMAIN_DISK_DEVICE_FLOPPY) {