The blockdev-backup QMP command was introduced in qemu-2.3.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
goto endjob;
}
- if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV_BACKUP)) {
- virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
- _("backup is not supported with this QEMU"));
- goto endjob;
- }
-
if (virDomainBackupAlignDisks(def, vm->def, suffix) < 0)
goto endjob;
/* 395 */
"vnc-power-control", /* QEMU_CAPS_VNC_POWER_CONTROL */
"audiodev", /* X_QEMU_CAPS_AUDIODEV */
- "blockdev-backup", /* QEMU_CAPS_BLOCKDEV_BACKUP */
+ "blockdev-backup", /* X_QEMU_CAPS_BLOCKDEV_BACKUP */
"object.qapified", /* QEMU_CAPS_OBJECT_JSON */
"rotation-rate", /* QEMU_CAPS_ROTATION_RATE */
{ "blockdev-add/arg-type/+file/aio/^io_uring", QEMU_CAPS_AIO_IO_URING },
{ "blockdev-add/arg-type/+rbd/encrypt", QEMU_CAPS_RBD_ENCRYPTION },
{ "blockdev-add/arg-type/+nbd/tls-hostname", QEMU_CAPS_BLOCKDEV_NBD_TLS_HOSTNAME },
- { "blockdev-backup", QEMU_CAPS_BLOCKDEV_BACKUP },
{ "blockdev-snapshot/$allow-write-only-overlay", QEMU_CAPS_BLOCKDEV_SNAPSHOT_ALLOW_WRITE_ONLY },
{ "chardev-add/arg-type/backend/+socket/data/reconnect", QEMU_CAPS_CHARDEV_RECONNECT },
{ "chardev-add/arg-type/backend/+file/data/logfile", QEMU_CAPS_CHARDEV_LOGFILE },
void
virQEMUCapsInitProcessCapsInterlock(virQEMUCaps *qemuCaps)
{
- if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV_BACKUP) &&
- virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV_REOPEN) &&
+ if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV_REOPEN) &&
virQEMUCapsGet(qemuCaps, QEMU_CAPS_MIGRATION_PARAM_BLOCK_BITMAP_MAPPING))
virQEMUCapsSet(qemuCaps, QEMU_CAPS_INCREMENTAL_BACKUP);
/* 395 */
QEMU_CAPS_VNC_POWER_CONTROL, /* -vnc power-control option */
X_QEMU_CAPS_AUDIODEV, /* -audiodev instead of QEMU_AUDIO_DRV */
- QEMU_CAPS_BLOCKDEV_BACKUP, /* qemu supports the blockdev-backup job */
+ X_QEMU_CAPS_BLOCKDEV_BACKUP, /* qemu supports the blockdev-backup job */
QEMU_CAPS_OBJECT_JSON, /* parameters for object-add are formally described */
QEMU_CAPS_ROTATION_RATE, /* scsi-disk / ide-drive rotation-rate prop */
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
- <flag name='blockdev-backup'/>
<flag name='rotation-rate'/>
<flag name='input-linux'/>
<flag name='query-display-options'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
- <flag name='blockdev-backup'/>
<flag name='rotation-rate'/>
<flag name='input-linux'/>
<flag name='query-display-options'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
- <flag name='blockdev-backup'/>
<flag name='rotation-rate'/>
<flag name='input-linux'/>
<flag name='query-display-options'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
- <flag name='blockdev-backup'/>
<flag name='rotation-rate'/>
<flag name='input-linux'/>
<flag name='query-display-options'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
- <flag name='blockdev-backup'/>
<flag name='rotation-rate'/>
<flag name='input-linux'/>
<flag name='query-display-options'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
- <flag name='blockdev-backup'/>
<flag name='rotation-rate'/>
<flag name='input-linux'/>
<flag name='query-display-options'/>
<flag name='am53c974'/>
<flag name='vhost-user-blk'/>
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
- <flag name='blockdev-backup'/>
<flag name='rotation-rate'/>
<flag name='input-linux'/>
<flag name='query-display-options'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
- <flag name='blockdev-backup'/>
<flag name='rotation-rate'/>
<flag name='input-linux'/>
<flag name='query-display-options'/>
<flag name='netdev.vhost-vdpa'/>
<flag name='ncr53c90'/>
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
- <flag name='blockdev-backup'/>
<flag name='rotation-rate'/>
<flag name='input-linux'/>
<flag name='query-display-options'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
- <flag name='blockdev-backup'/>
<flag name='rotation-rate'/>
<flag name='input-linux'/>
<flag name='query-display-options'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
- <flag name='blockdev-backup'/>
<flag name='rotation-rate'/>
<flag name='input-linux'/>
<flag name='query-display-options'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
- <flag name='blockdev-backup'/>
<flag name='rotation-rate'/>
<flag name='input-linux'/>
<flag name='query-display-options'/>
<flag name='am53c974'/>
<flag name='vhost-user-blk'/>
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
- <flag name='blockdev-backup'/>
<flag name='rotation-rate'/>
<flag name='input-linux'/>
<flag name='query-display-options'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
- <flag name='blockdev-backup'/>
<flag name='rotation-rate'/>
<flag name='input-linux'/>
<flag name='query-display-options'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
- <flag name='blockdev-backup'/>
<flag name='rotation-rate'/>
<flag name='input-linux'/>
<flag name='query-display-options'/>
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
<flag name='migration-param.block-bitmap-mapping'/>
<flag name='vnc-power-control'/>
- <flag name='blockdev-backup'/>
<flag name='object.qapified'/>
<flag name='rotation-rate'/>
<flag name='compat-deprecated'/>
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
<flag name='migration-param.block-bitmap-mapping'/>
<flag name='vnc-power-control'/>
- <flag name='blockdev-backup'/>
<flag name='object.qapified'/>
<flag name='rotation-rate'/>
<flag name='compat-deprecated'/>
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
<flag name='migration-param.block-bitmap-mapping'/>
<flag name='vnc-power-control'/>
- <flag name='blockdev-backup'/>
<flag name='object.qapified'/>
<flag name='rotation-rate'/>
<flag name='compat-deprecated'/>
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
<flag name='migration-param.block-bitmap-mapping'/>
<flag name='vnc-power-control'/>
- <flag name='blockdev-backup'/>
<flag name='object.qapified'/>
<flag name='rotation-rate'/>
<flag name='compat-deprecated'/>
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
<flag name='migration-param.block-bitmap-mapping'/>
<flag name='vnc-power-control'/>
- <flag name='blockdev-backup'/>
<flag name='object.qapified'/>
<flag name='rotation-rate'/>
<flag name='compat-deprecated'/>
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
<flag name='migration-param.block-bitmap-mapping'/>
<flag name='vnc-power-control'/>
- <flag name='blockdev-backup'/>
<flag name='object.qapified'/>
<flag name='rotation-rate'/>
<flag name='compat-deprecated'/>
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
<flag name='migration-param.block-bitmap-mapping'/>
<flag name='vnc-power-control'/>
- <flag name='blockdev-backup'/>
<flag name='object.qapified'/>
<flag name='rotation-rate'/>
<flag name='compat-deprecated'/>
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
<flag name='migration-param.block-bitmap-mapping'/>
<flag name='vnc-power-control'/>
- <flag name='blockdev-backup'/>
<flag name='object.qapified'/>
<flag name='rotation-rate'/>
<flag name='compat-deprecated'/>
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
<flag name='migration-param.block-bitmap-mapping'/>
<flag name='vnc-power-control'/>
- <flag name='blockdev-backup'/>
<flag name='object.qapified'/>
<flag name='rotation-rate'/>
<flag name='compat-deprecated'/>
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
<flag name='migration-param.block-bitmap-mapping'/>
<flag name='vnc-power-control'/>
- <flag name='blockdev-backup'/>
<flag name='object.qapified'/>
<flag name='rotation-rate'/>
<flag name='compat-deprecated'/>
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
<flag name='migration-param.block-bitmap-mapping'/>
<flag name='vnc-power-control'/>
- <flag name='blockdev-backup'/>
<flag name='object.qapified'/>
<flag name='rotation-rate'/>
<flag name='compat-deprecated'/>