[libvirt] [PATCH] qemu: blockcopy: Forbid using persistent bitmap granularity with raw vols
Shanzhi Yu
shyu at redhat.com
Wed Jun 24 08:48:16 UTC 2015
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
More information about the libvir-list
mailing list