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 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 | 457 +++++++++++++++++++----- 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/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 | 788 ++++++++++++++++++++++++++++++++++++++++++ tests/qemu-iotests/group | 2 + tests/qemu-iotests/iotests.py | 4 +- 18 files changed, 1823 insertions(+), 174 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