12.08.2019 22:50, Max Reitz wrote: > On 12.08.19 21:46, Max Reitz wrote: >> On 12.08.19 20:11, Vladimir Sementsov-Ogievskiy wrote: >>> Hi all! >>> >>> I'm not sure, is it a bug or a feature, but using qcow2 under raw is >>> broken. It should be either fixed like I propose (by Max's suggestion) >>> or somehow forbidden (just forbid backing-file supporting node to be >>> file child of raw-format node). >> >> I agree, I think only filters should return BDRV_BLOCK_RAW. >> >> (And not even them, they should just be handled transparently by >> bdrv_co_block_status(). But that’s something for later.) >> >>> Vladimir Sementsov-Ogievskiy (2): >>> block/raw-format: switch to BDRV_BLOCK_DATA with BDRV_BLOCK_RECURSE >>> iotests: test mirroring qcow2 under raw format >>> >>> block/raw-format.c | 2 +- >>> tests/qemu-iotests/263 | 46 ++++++++++++++++++++++++++++++++++++++ >>> tests/qemu-iotests/263.out | 12 ++++++++++ >>> tests/qemu-iotests/group | 1 + >>> 4 files changed, 60 insertions(+), 1 deletion(-) >>> create mode 100755 tests/qemu-iotests/263 >>> create mode 100644 tests/qemu-iotests/263.out >> >> Thanks, applied to my block-next branch: >> >> https://git.xanclic.moe/XanClic/qemu/commits/branch/block-next > > Oops, maybe not. 221 needs to be adjusted. >
Hmm yes, I forget to run tests.. Areas which were zero becomes data|zero, it don't look good. So, it's not quite right to report DATA | RECURSE, we actually should report DATA_OR_ZERO | RECURSE, which is actually ALLOCATED | RECURSE, as otherwise DATA will be set in final result (generic layer must not drop it, obviously). ALLOCATED never returned by drivers but seems it should be. I'll think a bit and resend something new. -- Best regards, Vladimir