On Wed, 04/26 14:52, Kevin Wolf wrote: > Am 26.04.2017 um 05:34 hat Fam Zheng geschrieben: > > Signed-off-by: Fam Zheng <f...@redhat.com> > > The commit message is a bit terse. :-) > > So I think this means that instead of opening the backing file of the > backup (which is probably the active file of the VM) a second time, we > instead take a reference on the existing node. Very good idea. > > In fact, my question is: How did this ever work? Did we just neglect to > test this? The backup backing file will use stale qcow2 metadata when we > continue to write to the source.
Reading from the target BDS would be a problem, but I guess it's relatively uncommon: - In QEMU code, COW is always done manually in backup_do_cow, so no reading from target->backing in block layer. - Writing to target is done in target cluster granularity so no COW too. But it's still a fully valid point, for example it can be exported to NBD, etc. > > Unless I'm missing something, I'd propose this for qemu-stable. Yes, sounds good. > > Also, mirror with MIRROR_OPEN_BACKING_CHAIN probably has a similar > problem with opening the images in the backing chain a second time. Seems so. But if there was such a test case, image locking would have complained. Is that a practical use case? Mirror target image uses the active image as backign file? (It's a bit late in the evening, please remind me :-) Fam