qemuDomainDiskBlockJobIsSupported: Assume QEMU_CAPS_BLOCKDEV is supported

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Peter Krempa 2022-07-21 16:58:50 +02:00
parent 6203e43d03
commit f590850273
6 changed files with 14 additions and 22 deletions

View File

@ -260,7 +260,7 @@ qemuBackupDiskPrepareDataOne(virDomainObj *vm,
return -1; return -1;
} }
if (!qemuDomainDiskBlockJobIsSupported(vm, dd->domdisk)) if (!qemuDomainDiskBlockJobIsSupported(dd->domdisk))
return -1; return -1;
if (dd->store->format == VIR_STORAGE_FILE_NONE) { if (dd->store->format == VIR_STORAGE_FILE_NONE) {

View File

@ -372,7 +372,7 @@ qemuCheckpointPrepare(virQEMUDriver *driver,
return -1; return -1;
} }
if (!qemuDomainDiskBlockJobIsSupported(vm, vm->def->disks[i])) if (!qemuDomainDiskBlockJobIsSupported(vm->def->disks[i]))
return -1; return -1;
} }

View File

@ -11252,19 +11252,15 @@ qemuDomainInitializePflashStorageSource(virDomainObj *vm,
/** /**
* qemuDomainDiskBlockJobIsSupported: * qemuDomainDiskBlockJobIsSupported:
* *
* Returns true if block jobs are supported on @disk by @vm or false and reports * Returns true if block jobs are supported on @disk or false and reports
* an error otherwise. * an error otherwise.
* *
* Note that this does not verify whether other block jobs are running etc. * Note that this does not verify whether other block jobs are running etc.
*/ */
bool bool
qemuDomainDiskBlockJobIsSupported(virDomainObj *vm, qemuDomainDiskBlockJobIsSupported(virDomainDiskDef *disk)
virDomainDiskDef *disk)
{ {
qemuDomainObjPrivate *priv = vm->privateData; if (qemuDiskBusIsSD(disk->bus)) {
if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV) &&
qemuDiskBusIsSD(disk->bus)) {
virReportError(VIR_ERR_OPERATION_UNSUPPORTED, virReportError(VIR_ERR_OPERATION_UNSUPPORTED,
_("block jobs are not supported on disk '%s' using bus 'sd'"), _("block jobs are not supported on disk '%s' using bus 'sd'"),
disk->dst); disk->dst);

View File

@ -1047,8 +1047,7 @@ qemuDomainInitializePflashStorageSource(virDomainObj *vm,
virQEMUDriverConfig *cfg); virQEMUDriverConfig *cfg);
bool bool
qemuDomainDiskBlockJobIsSupported(virDomainObj *vm, qemuDomainDiskBlockJobIsSupported(virDomainDiskDef *disk);
virDomainDiskDef *disk);
int int
qemuDomainDefNumaCPUsRectify(virDomainDef *def, qemuDomainDefNumaCPUsRectify(virDomainDef *def,

View File

@ -14428,7 +14428,7 @@ qemuDomainBlockPullCommon(virDomainObj *vm,
if (qemuDomainDiskBlockJobIsActive(disk)) if (qemuDomainDiskBlockJobIsActive(disk))
goto endjob; goto endjob;
if (!qemuDomainDiskBlockJobIsSupported(vm, disk)) if (!qemuDomainDiskBlockJobIsSupported(disk))
goto endjob; goto endjob;
if (base && if (base &&
@ -14958,7 +14958,7 @@ qemuDomainBlockCopyCommon(virDomainObj *vm,
if (qemuDomainDiskBlockJobIsActive(disk)) if (qemuDomainDiskBlockJobIsActive(disk))
goto endjob; goto endjob;
if (!qemuDomainDiskBlockJobIsSupported(vm, disk)) if (!qemuDomainDiskBlockJobIsSupported(disk))
goto endjob; goto endjob;
if (disk->device == VIR_DOMAIN_DISK_DEVICE_LUN && if (disk->device == VIR_DOMAIN_DISK_DEVICE_LUN &&
@ -15427,7 +15427,7 @@ qemuDomainBlockCommit(virDomainPtr dom,
if (!(disk = qemuDomainDiskByName(vm->def, path))) if (!(disk = qemuDomainDiskByName(vm->def, path)))
goto endjob; goto endjob;
if (!qemuDomainDiskBlockJobIsSupported(vm, disk)) if (!qemuDomainDiskBlockJobIsSupported(disk))
goto endjob; goto endjob;
if (virStorageSourceIsEmpty(disk->src)) { if (virStorageSourceIsEmpty(disk->src)) {

View File

@ -446,8 +446,7 @@ qemuSnapshotPrepareDiskExternalInactive(virDomainSnapshotDiskDef *snapdisk,
static int static int
qemuSnapshotPrepareDiskExternalActive(virDomainObj *vm, qemuSnapshotPrepareDiskExternalActive(virDomainSnapshotDiskDef *snapdisk,
virDomainSnapshotDiskDef *snapdisk,
virDomainDiskDef *domdisk) virDomainDiskDef *domdisk)
{ {
virStorageType actualType = virStorageSourceGetActualType(snapdisk->src); virStorageType actualType = virStorageSourceGetActualType(snapdisk->src);
@ -462,7 +461,7 @@ qemuSnapshotPrepareDiskExternalActive(virDomainObj *vm,
return -1; return -1;
} }
if (!qemuDomainDiskBlockJobIsSupported(vm, domdisk)) if (!qemuDomainDiskBlockJobIsSupported(domdisk))
return -1; return -1;
switch (actualType) { switch (actualType) {
@ -491,8 +490,7 @@ qemuSnapshotPrepareDiskExternalActive(virDomainObj *vm,
static int static int
qemuSnapshotPrepareDiskExternal(virDomainObj *vm, qemuSnapshotPrepareDiskExternal(virDomainDiskDef *disk,
virDomainDiskDef *disk,
virDomainSnapshotDiskDef *snapdisk, virDomainSnapshotDiskDef *snapdisk,
bool active, bool active,
bool reuse) bool reuse)
@ -507,7 +505,7 @@ qemuSnapshotPrepareDiskExternal(virDomainObj *vm,
if (qemuSnapshotPrepareDiskExternalInactive(snapdisk, disk) < 0) if (qemuSnapshotPrepareDiskExternalInactive(snapdisk, disk) < 0)
return -1; return -1;
} else { } else {
if (qemuSnapshotPrepareDiskExternalActive(vm, snapdisk, disk) < 0) if (qemuSnapshotPrepareDiskExternalActive(snapdisk, disk) < 0)
return -1; return -1;
} }
@ -700,8 +698,7 @@ qemuSnapshotPrepare(virDomainObj *vm,
} }
} }
if (qemuSnapshotPrepareDiskExternal(vm, dom_disk, disk, if (qemuSnapshotPrepareDiskExternal(dom_disk, disk, active, reuse) < 0)
active, reuse) < 0)
return -1; return -1;
external++; external++;