This is part three (or four, depending on whether you count the bdrv_swap removal) of what I had sent earlier as "[PATCH 00/34] block: Cache mode for children, reopen overhaul and more". Most of the patches were actually already reviewed in v1.
This part contains the remaining functional changes that the cover letter for v1 advertised, and a bit more: - You can now use node name references for backing files - bdrv_reopen() works now properly for inherited options (don't exist before this series; after the series the cache options) - bdrv_reopen() works now properly with semantically overlapping options - bdrv_reopen() can change child node options - And finally you can set cache mode options for backing files and other children now (and the reopen behaviour even makes sense v3: - Patch 3 ('mirror: Error out when a BDS would get two BBs') Fixed typo in a comment [Max] - Patch 4 ('block: Allow references for backing files') Removed meanwhile redundant assertion [Max] s/backing_hd/backing/ in the commit message [Max] - Patch 6 ('block: Exclude nested options only for children in append_open_options()') g_strdup() the child name to avoid use after free [Wen Congyang] - Patch 14 ('blockdev: Set 'format' indicates non-empty drive') Fix qemu commandline in a qtest case [Wen Congyang] - Patch 20 ('qemu-iotests: Test cache mode option inheritance') s/backing_hd/backing/ in some comments [Max] Enabled commented out 'grep Cache' filter for saner output [Max] Kevin Wolf (21): qcow2: Add .bdrv_join_options callback block: Fix reopen with semantically overlapping options mirror: Error out when a BDS would get two BBs block: Allow references for backing files block: Consider all block layer options in append_open_options block: Exclude nested options only for children in append_open_options() block: Pass driver-specific options to .bdrv_refresh_filename() block: Keep "driver" in bs->options block: Allow specifying child options in reopen block: reopen: Document option precedence and refactor accordingly block: Add infrastructure for option inheritance block: Split out parse_json_protocol() block: Introduce bs->explicit_options blockdev: Set 'format' indicates non-empty drive qemu-iotests: Remove cache mode test without medium block: reopen: Extract QemuOpts for generic block layer options block: Move cache options into options QDict blkdebug: Enable reopen qemu-iotests: Try setting cache mode for children qemu-iotests: Test cache mode option inheritance qemu-iotests: Test reopen with node-name/driver options block.c | 459 +++++++++++++++++++------ block/blkdebug.c | 24 +- block/blkverify.c | 2 +- block/mirror.c | 30 +- block/nbd.c | 10 +- block/qcow2.c | 47 +++ block/quorum.c | 2 +- blockdev.c | 57 +--- include/block/block.h | 4 +- include/block/block_int.h | 8 +- tests/hd-geo-test.c | 4 +- tests/qemu-iotests/051 | 22 +- tests/qemu-iotests/051.out | 74 +++- tests/qemu-iotests/133 | 90 +++++ tests/qemu-iotests/133.out | 22 ++ tests/qemu-iotests/142 | 354 +++++++++++++++++++ tests/qemu-iotests/142.out | 773 ++++++++++++++++++++++++++++++++++++++++++ tests/qemu-iotests/group | 2 + tests/qemu-iotests/iotests.py | 4 +- 19 files changed, 1811 insertions(+), 177 deletions(-) create mode 100755 tests/qemu-iotests/133 create mode 100644 tests/qemu-iotests/133.out create mode 100755 tests/qemu-iotests/142 create mode 100644 tests/qemu-iotests/142.out -- 1.8.3.1