Skip to content

Update the inherits_from pointer after stream and commit

Alberto Garcia qemu-devel 1 version Applied

Status from this message: Thanks, applied to the block branch.

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest2 patches 3 repliesApplied

Patches in v1 Applied

#Subject and filesSizeRepliesApplied
1/2block: Update BlockDriverState.inherits_from on bdrv_set_backing_hd()block.c tests/qemu-iotests/161 tests/qemu-iotests/161.out +1 more+149 -00 replies
2/2block: Update BlockDriverState.inherits_from on bdrv_drop_intermediate()block.c tests/qemu-iotests/161 tests/qemu-iotests/161.out+66 -10 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [Qemu-devel] [PATCH 0/2] Update the inherits_from pointer after stream and commit

Hi all,

when you open an image [A] with a few more images on the backing chain you get something like this:

    [E] <- [D] <- [C] <- [B] <- [A]

Here you can go from [A] to [E] by following the bs->backing pointer. At the same time each one of the backing files has an 'inherits_from' attribute pointing to their parent, so you can go from
[E] to [A] following the inherits_from pointer.

'inherits_from' is used on bdrv_reopen_queue_child() to decide if a node's children must be reopened together with the parent and inherit its options.

If some the intermediate nodes are removed (either by block-stream or by block-commit) you end up with something like this:

[E] <- [A]

In this case we would expect [E] to inherit from [A], however its inherits_from pointer is NULL and trying to change its options by reopening [A] with backing.option=value fails.

This patch series fixes this. See each individual patch for more details.

Regards,

Berto

Alberto Garcia (2):
block: Update BlockDriverState.inherits_from on bdrv_set_backing_hd()
block: Update BlockDriverState.inherits_from on
bdrv_drop_intermediate()

 block.c                    |  37 ++++++++++++
 tests/qemu-iotests/161     | 137 +++++++++++++++++++++++++++++++++++++++++++++
 tests/qemu-iotests/161.out |  39 +++++++++++++
 tests/qemu-iotests/group   |   1 +
 4 files changed, 214 insertions(+)
 create mode 100755 tests/qemu-iotests/161
 create mode 100644 tests/qemu-iotests/161.out
Signature · 1 line
2.11.0