δΊ 2013/11/7 2:50, Max Reitz ει: > It should be possible to execute the QMP "drive-mirror" command in > "none" sync mode and "absolute-paths" mode even for block devices > lacking a backing file. > > "absolute-paths" does in fact not require a backing file to be present, > as can be seen from the "top" sync mode code path. "top" basically > states that the device should indeed have a backing file - however, the > current code catches the case if it doesn't and then simply treats it as > "full" sync mode, creating a target image without a backing file (in > "absolute-paths" mode). Thus, "absolute-paths" does not imply the target > file must indeed have a backing file. > > Therefore, the target file may be left unbacked in case of "none" sync > mode as well, if the specified device is not backed either. Currently, > qemu will crash trying to dereference the backing file pointer since it > assumes that it will always be non-NULL in that case ("none" with > "absolute-paths"). > > The first patch in this series adds a check whether the specified block > device is backed or not (creating an unbacked target image, if required); > the second patch adds a test case for mirroring unbacked block devices. > > v2: > - patch 1: Reuse an already existing codepath to create an unbacked > target image instead of introducing a new one (based on > Fam's comment). > - patch 2: Incorporated test case into 041 instead of creating a new > file (according to Xia's and Paolo's comments). > > > Max Reitz (2): > block/drive-mirror: Check for NULL backing_hd > qemu-iotests: Extend 041 for unbacked mirroring > > blockdev.c | 4 +++- > tests/qemu-iotests/041 | 25 +++++++++++++++++++++++++ > tests/qemu-iotests/041.out | 4 ++-- > 3 files changed, 30 insertions(+), 3 deletions(-) >
Reviewed-by: Wenchao Xia <xiaw...@linux.vnet.ibm.com> Should we change doc for NewImageMode in qapi-schema.json also?