qemu: copy: Accept 'format' parameter when copying to a non-existing img
authorPeter Krempa <pkrempa@redhat.com>
Tue, 1 Jul 2014 11:52:51 +0000 (13:52 +0200)
committerEric Blake <eblake@redhat.com>
Wed, 2 Jul 2014 18:03:15 +0000 (12:03 -0600)
commit53bde6b7b4f9bdae6f94a0c196705d4531ae8211
tree06ddcc33f99d8a4a63c4e423ce4a115e8c5590d2
parent9ed360712129e7901e1af222e4488d56538c5b3e
qemu: copy: Accept 'format' parameter when copying to a non-existing img

We have the following matrix of possible arguments handled by the logic
statement touched by this patch:
       | flags & _REUSE_EXT | !(flags & _REUSE_EXT)
-------+--------------------+----------------------
 format| (1)                | (2)
-------+--------------------+----------------------
!format| (3)                | (4)
-------+--------------------+----------------------

In cases 1 and 2 the user provided a format, in cases 3 and 4 not. The
user requests to use a pre-existing image in 1 and 3 and libvirt will
create a new image in 2 and 4.

The difference between cases 3 and 4 is that for 3 the format is probed
from the user-provided image, whereas in 4 we just use the existing disk
format.

The current code would treat cases 1,3 and 4 correctly but in case 2 the
format provided by the user would be ignored.

The particular piece of code was broken in commit 35c7701c64508f975dfeb8
but since it was introduced a few commits before that it was never
released as working.

(cherry picked from commit 42619ed05d7924978f3e6e2399522fc6f30607de)
Signed-off-by: Eric Blake <eblake@redhat.com>

Conflicts:
src/qemu/qemu_driver.c - no refactoring of commits 7b7bf001, 4f20226
src/qemu/qemu_driver.c