On 10/26/2012 07:21 AM, Peter Krempa wrote: > On 10/23/12 04:10, Eric Blake wrote: >> Minimal patch to wire up all the pieces in the previous patches >> to actually enable a block copy job. By minimal, I mean that >> qemu creates the file (that is, no REUSE_EXT flag support yet), >> SELinux must be disabled, a lock manager is not informed, and the >> audit logs aren't updated. But those will be added as >> improvements in future patches. >> >> This patch is designed so that if we ever add a future API >> virDomainBlockCopy with more bells and whistles (such as letting >> the user specify a destination image format different than the >> source), where virDomainBlockRebase is a wrapper around the >> simpler portions of the new functionality, then the new API can >> just reuse the new qemuDomainBlockCopy function and already >> support _SHALLOW and _REUSE_EXT flags. Also note that libvirt.c >> already filtered the new flags if _COPY is not present, so that >> we are not impacting the case of BlockRebase being a wrapper >> around BlockPull. >> >> * src/qemu/qemu_driver.c (qemuDomainBlockCopy): New function. >> (qemuDomainBlockRebase): Call it when appropriate. >> --- >> >> v9: fix bug with driver locking >> > > ACK as-is, but some parts will need to be dropped without the RHEL support.
Yep. Here's what I squashed in:
diff --git i/src/qemu/qemu_driver.c w/src/qemu/qemu_driver.c
index 111922d..bd52631 100644
--- i/src/qemu/qemu_driver.c
+++ w/src/qemu/qemu_driver.c
@@ -12860,7 +12860,6 @@ qemuDomainBlockCopy(virDomainPtr dom, const char
*path,
virDomainDiskDefPtr disk;
int ret = -1;
int idx;
- bool reopen;
/* Preliminaries: find the disk we are editing, sanity checks */
virCheckFlags(VIR_DOMAIN_BLOCK_REBASE_SHALLOW, -1);
@@ -12887,7 +12886,6 @@ qemuDomainBlockCopy(virDomainPtr dom, const char
*path,
goto cleanup;
}
- reopen = qemuCapsGet(priv->caps, QEMU_CAPS_DRIVE_REOPEN);
if (!(qemuCapsGet(priv->caps, QEMU_CAPS_DRIVE_MIRROR) &&
qemuCapsGet(priv->caps, QEMU_CAPS_BLOCKJOB_ASYNC))) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
@@ -12950,7 +12948,7 @@ qemuDomainBlockCopy(virDomainPtr dom, const char
*path,
/* Actually start the mirroring */
qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorDriveMirror(priv->mon, device, dest, format,
bandwidth,
- reopen, flags);
+ flags);
qemuDomainObjExitMonitor(driver, vm);
endjob:
--
Eric Blake [email protected] +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list [email protected] https://www.redhat.com/mailman/listinfo/libvir-list
