Hi,
I'm using the QMP command block-commit to merge an intermediate image
(image B) in a backing chain to an image lower in the chain (image A)
while the VM is running:
[A] <-- [B] <-- [C]
to
[A'] <-- [C].
This works fine if B has the same or larger size than image A, as A will
then be enlarged if needed. However, if B is smaller than A, A remains
the same size. This is documented in the QMP reference documentation:
If top is smaller than the base image, the base will not be truncated. If you
want the base image size to match the size of the smaller top, you can safely
truncate it yourself once the commit operation successfully completes.
I tried doing this with the block_resize QMP command, using the
node_name parameter to resize the backing image A' directly, but that
fails with the message "Device is in use". This restriction makes sense,
but seems overly restrictive in this situation. Is there some way to
bypass this restriction or safely resize the image to the size of B in
another way while the VM is running? I looked through the documentation,
but couldn't really find anything.
Cheers,
Vincent