On 06/24/2015 03:11 PM, Peter Krempa wrote: > qemu returns error but only in the event after the block job actually > starts. Reject it upfront for a better error message. > > Instead of: > $ virsh blockcopy vm hdc /tmp/raw.img --granularity 4096 --verbose --wait > error: Block Copy unexpectedly failed > > You will now get: > $ virsh blockcopy vm hdc /tmp/raw.img --granularity 4096 --verbose --wait > error: unsupported configuration: granularity can't be used with target volume format This can't avoid the cases that the source file has a raw format file as backing file. > > Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1233115 > --- > src/qemu/qemu_driver.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c > index c1373de..f570879 100644 > --- a/src/qemu/qemu_driver.c > +++ b/src/qemu/qemu_driver.c > @@ -16671,6 +16671,16 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm, > goto endjob; > } > > + /* blacklist granularity with some known-bad formats */ > + if (granularity && > + (mirror->format == VIR_STORAGE_FILE_RAW || > + (mirror->format <= VIR_STORAGE_FILE_NONE && > + disk->src->format == VIR_STORAGE_FILE_RAW))) { > + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", > + _("granularity can't be used with target volume format")); > + goto endjob; > + } > + > /* Prepare the destination file. */ > /* XXX Allow non-file mirror destinations */ > if (!virStorageSourceIsLocalStorage(mirror)) { -- Regards shyu -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list