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


Reply via email to