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(-)