Some image formats (e.g. qcow2) require the underlying file to grow on write accesses, but this is in fact not supported by all protocols (e.g. nbd does not). If such a format requiring file growth is used non-read-only over a protocol which does not support this, a warning should be issued.
This warning is issued for example whenever one tries to export a qcow2 image over nbd-server and use the export from qemu. We could make this an error, but I decided not to in order to retain "compatibility" (although if this warning is emitted, the user should have already complained about I/O errors on write accesses, so it's questionable what behavior this should be compatible to). While at it, make BDS.growable actually indicate what it is (as far as I understood) supposed to: Whether the BDS supports writes beyond the end of the disk size (which then automatically increase that disk size). Max Reitz (4): block: Correct bs->growable block: Introduce requires_growing_file iotests: Make some qemu-io commands read-only iotests: Skip read and write in 040 for length=0 block.c | 11 +++++++++++ block/blkdebug.c | 2 ++ block/blkverify.c | 2 ++ block/cow.c | 1 + block/iscsi.c | 2 ++ block/nbd.c | 2 ++ block/qcow.c | 1 + block/qcow2.c | 2 ++ block/qed.c | 1 + block/raw_bsd.c | 1 + block/vdi.c | 2 ++ block/vhdx.c | 2 ++ block/vmdk.c | 1 + block/vpc.c | 2 ++ include/block/block_int.h | 4 ++++ tests/qemu-iotests/040 | 18 +++++++++++------- tests/qemu-iotests/072 | 9 ++++++++- tests/qemu-iotests/072.out | 1 + tests/qemu-iotests/089 | 2 +- 19 files changed, 57 insertions(+), 9 deletions(-) -- 2.0.1