diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index b202d02f98b31a77485af7b1b43281d6e16d6ba2..8aa082618315d50f785cb868d77aca8de813d3c6 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5625,7 +5625,23 @@ qemuDomainCheckRemoveOptionalDisk(virQEMUDriverPtr driver, qemuDomainEventQueue(driver, event); } -static int + +/** + * qemuDomainCheckDiskStartupPolicy: + * @driver: qemu driver object + * @vm: domain object + * @disk: index of disk to check + * @cold_boot: true if a new VM is being started + * + * This function should be called when the source storage for a disk device is + * missing. The function checks whether the startup policy for the disk allows + * removal of the source (or disk) according to the state of the VM. + * + * The function returns 0 if the source or disk was dropped and -1 if the state + * of the VM does not allow this. This function does not report errors, but + * clears any reported error if 0 is returned. + */ +int qemuDomainCheckDiskStartupPolicy(virQEMUDriverPtr driver, virDomainObjPtr vm, size_t diskIndex, diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 9632a9af8402b3d7531341d089b9cb5259332dc2..f3ffa62932ac618757dc43a50ded3cfac139428f 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -639,6 +639,11 @@ void qemuDomainSetFakeReboot(virQEMUDriverPtr driver, bool qemuDomainJobAllowed(qemuDomainObjPrivatePtr priv, qemuDomainJob job); +int qemuDomainCheckDiskStartupPolicy(virQEMUDriverPtr driver, + virDomainObjPtr vm, + size_t diskIndex, + bool cold_boot); + int qemuDomainCheckDiskPresence(virConnectPtr conn, virQEMUDriverPtr driver, virDomainObjPtr vm,