mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
qemu: Don't reject making domain persistent if block copy is running
Add documentation that the 'VIR_DOMAIN_BLOCK_COPY_TRANSIENT_JOB' flag is auto-assumed if the block copy job is started while the VM is transient and remove the restriction to define the domain when copy is running. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
7431b3eb9a
commit
5ea24bbb54
@ -6133,11 +6133,6 @@ virDomainGetBlockInfo(virDomainPtr domain, const char *disk,
|
|||||||
* virDomainUndefine(). A previous definition for this domain would be
|
* virDomainUndefine(). A previous definition for this domain would be
|
||||||
* overridden if it already exists.
|
* overridden if it already exists.
|
||||||
*
|
*
|
||||||
* Some hypervisors may prevent this operation if there is a current
|
|
||||||
* block copy operation on a transient domain with the same id as the
|
|
||||||
* domain being defined; in that case, use virDomainBlockJobAbort() to
|
|
||||||
* stop the block copy first.
|
|
||||||
*
|
|
||||||
* virDomainFree should be used to free the resources after the
|
* virDomainFree should be used to free the resources after the
|
||||||
* domain object is no longer needed.
|
* domain object is no longer needed.
|
||||||
*
|
*
|
||||||
@ -6181,11 +6176,6 @@ virDomainDefineXML(virConnectPtr conn, const char *xml)
|
|||||||
* virDomainUndefine(). A previous definition for this domain would be
|
* virDomainUndefine(). A previous definition for this domain would be
|
||||||
* overridden if it already exists.
|
* overridden if it already exists.
|
||||||
*
|
*
|
||||||
* Some hypervisors may prevent this operation if there is a current
|
|
||||||
* block copy operation on a transient domain with the same id as the
|
|
||||||
* domain being defined; in that case, use virDomainBlockJobAbort() to
|
|
||||||
* stop the block copy first.
|
|
||||||
*
|
|
||||||
* virDomainFree should be used to free the resources after the
|
* virDomainFree should be used to free the resources after the
|
||||||
* domain object is no longer needed.
|
* domain object is no longer needed.
|
||||||
*
|
*
|
||||||
@ -10312,7 +10302,8 @@ virDomainBlockRebase(virDomainPtr dom, const char *disk,
|
|||||||
*
|
*
|
||||||
* If @flags contains VIR_DOMAIN_BLOCK_COPY_TRANSIENT_JOB the job will not be
|
* If @flags contains VIR_DOMAIN_BLOCK_COPY_TRANSIENT_JOB the job will not be
|
||||||
* recoverable if the VM is turned off while job is active. This flag will
|
* recoverable if the VM is turned off while job is active. This flag will
|
||||||
* remove the restriction of copy jobs to transient domains.
|
* remove the restriction of copy jobs to transient domains. Note that this flag
|
||||||
|
* is automatically implied if the VM is transient at the time it's started.
|
||||||
*
|
*
|
||||||
* The @disk parameter is either an unambiguous source name of the
|
* The @disk parameter is either an unambiguous source name of the
|
||||||
* block device (the <source file='...'/> sub-element, such as
|
* block device (the <source file='...'/> sub-element, such as
|
||||||
|
@ -7709,12 +7709,6 @@ qemuDomainDefineXMLFlags(virConnectPtr conn,
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
def = NULL;
|
def = NULL;
|
||||||
|
|
||||||
if (qemuDomainHasBlockjob(vm, true)) {
|
|
||||||
virReportError(VIR_ERR_BLOCK_COPY_ACTIVE, "%s",
|
|
||||||
_("domain has active block job"));
|
|
||||||
virDomainObjAssignDef(vm, NULL, false, NULL);
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
vm->persistent = 1;
|
vm->persistent = 1;
|
||||||
|
|
||||||
if (virDomainSaveConfig(cfg->configDir, driver->caps,
|
if (virDomainSaveConfig(cfg->configDir, driver->caps,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user