#include "qemu_block.h"
#include "qemu_command.h"
#include "qemu_domain.h"
+#include "qemu_process.h"
#include "domain_conf.h"
#include "virlog.h"
#include "virutil.h"
static int
qemuValidateDomainDeviceDefDiskTransient(const virDomainDiskDef *disk,
+ const virDomainDef *def,
virQEMUCaps *qemuCaps)
{
}
if (disk->transientShareBacking == VIR_TRISTATE_BOOL_YES) {
+ if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SET_ACTION) &&
+ !qemuProcessRebootAllowed(def)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("transient disk backing image sharing with destroy action of lifecycle isn't supported by this QEMU binary"));
+ return -1;
+ }
+
/* sharing the backing file requires hotplug of the disk in the qemu driver */
switch (disk->bus) {
case VIR_DOMAIN_DISK_BUS_USB:
if (qemuValidateDomainDeviceDefDiskBlkdeviotune(disk, def) < 0)
return -1;
- if (qemuValidateDomainDeviceDefDiskTransient(disk, qemuCaps) < 0)
+ if (qemuValidateDomainDeviceDefDiskTransient(disk, def, qemuCaps) < 0)
return -1;
if (disk->src->shared && !disk->src->readonly &&