I'm sparing myself writing this cover letter again, and I'll just give you a link to the previous version:
http://lists.nongnu.org/archive/html/qemu-block/2017-09/msg01030.html The only difference is that I dropped patch 16 which added a QAPI @base-directory option for any node that could be used to override the base directory to be used for resolving relative filenames. (Because Berto and Kevin convinced me it's not that useful now -- and the patch is pretty stand-alone, so we can always add it later if needed.) In turn, I had to add patch 4 because test 191 was broken by this series. v7: Rebased on block-next, and: - Patch 4: Added (iotest 191 tries to both override a node's backing file and use filenames for node identification at the same time -- not a very good idea, but with a simple modification we can still get away with it) - Patch 5: Changes 191's output now - Patch 10 (was 9): Shorten the code [Berto] - Old patch 16: Dropped [Berto/Kevin] - Patch 17: Remove test case for @base-directory - Patch 18: - Never use inline definition of the significant runtime options array [Kevin] - Add encrypt.key-secret options for qcow/qcow2 - Add transfer limit options for blkdebug - s/uid/user/ and s/gid/group/ for NFS - Add offset/size for raw - Patch 19: Sprinkle a couple of notes in about how we actually don't want this new function [Kevin, kind of] - Patch 20: Changes 191's output now (and also, there is a rebase conflict for 110 due to patch 16 being removed and thus patch 17 having been modified) git-backport-diff against v6: Key: [----] : patches are identical [####] : number of functional differences between upstream/downstream patch [down] : patch is downstream-only The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively 001/25:[----] [--] 'block/mirror: Small absolute-paths simplification' 002/25:[----] [--] 'block: Use children list in bdrv_refresh_filename' 003/25:[----] [--] 'block: Add BDS.backing_overridden' 004/25:[down] 'iotests: Drop explicit base blockdev in 191' 005/25:[0024] [FC] 'block: Respect backing bs in bdrv_refresh_filename' 006/25:[----] [--] 'block: Make path_combine() return the path' 007/25:[----] [-C] 'block: bdrv_get_full_backing_filename_from_...'s ret. val.' 008/25:[----] [--] 'block: bdrv_get_full_backing_filename's ret. val.' 009/25:[----] [--] 'block: Add bdrv_make_absolute_filename()' 010/25:[0014] [FC] 'block: Fix bdrv_find_backing_image()' 011/25:[----] [--] 'block: Add bdrv_dirname()' 012/25:[----] [--] 'blkverify: Make bdrv_dirname() return NULL' 013/25:[----] [--] 'quorum: Make bdrv_dirname() return NULL' 014/25:[----] [--] 'block/nbd: Make bdrv_dirname() return NULL' 015/25:[----] [--] 'block/nfs: Implement bdrv_dirname()' 016/25:[----] [--] 'block: Use bdrv_dirname() for relative filenames' 017/25:[0027] [FC] 'iotests: Add quorum case to test 110' 018/25:[0188] [FC] 'block: Add sgfnt_runtime_opts to BlockDriver' 019/25:[0044] [FC] 'block: Add BlockDriver.bdrv_gather_child_options' 020/25:[0026] [FC] 'block: Generically refresh runtime options' 021/25:[----] [-C] 'block: Purify .bdrv_refresh_filename()' 022/25:[----] [--] 'block: Do not copy exact_filename from format file' 023/25:[----] [-C] 'block: Fix FIXME from "Add BDS.backing_overridden"' 024/25:[----] [--] 'block/curl: Implement bdrv_refresh_filename()' 025/25:[----] [--] 'block/null: Generate filename even with latency-ns' Max Reitz (25): block/mirror: Small absolute-paths simplification block: Use children list in bdrv_refresh_filename block: Add BDS.backing_overridden iotests: Drop explicit base blockdev in 191 block: Respect backing bs in bdrv_refresh_filename block: Make path_combine() return the path block: bdrv_get_full_backing_filename_from_...'s ret. val. block: bdrv_get_full_backing_filename's ret. val. block: Add bdrv_make_absolute_filename() block: Fix bdrv_find_backing_image() block: Add bdrv_dirname() blkverify: Make bdrv_dirname() return NULL quorum: Make bdrv_dirname() return NULL block/nbd: Make bdrv_dirname() return NULL block/nfs: Implement bdrv_dirname() block: Use bdrv_dirname() for relative filenames iotests: Add quorum case to test 110 block: Add sgfnt_runtime_opts to BlockDriver block: Add BlockDriver.bdrv_gather_child_options block: Generically refresh runtime options block: Purify .bdrv_refresh_filename() block: Do not copy exact_filename from format file block: Fix FIXME from "Add BDS.backing_overridden" block/curl: Implement bdrv_refresh_filename() block/null: Generate filename even with latency-ns include/block/block.h | 15 +- include/block/block_int.h | 38 +++- block.c | 507 ++++++++++++++++++++++++++++-------------- block/blkdebug.c | 69 +++--- block/blkverify.c | 29 +-- block/commit.c | 3 +- block/crypto.c | 8 + block/curl.c | 39 ++++ block/gluster.c | 19 ++ block/iscsi.c | 18 ++ block/mirror.c | 19 +- block/nbd.c | 46 ++-- block/nfs.c | 53 ++--- block/null.c | 33 ++- block/qapi.c | 12 +- block/qcow.c | 7 + block/qcow2.c | 7 + block/quorum.c | 69 ++++-- block/raw-format.c | 10 +- block/rbd.c | 14 ++ block/replication.c | 8 + block/sheepdog.c | 12 + block/ssh.c | 12 + block/throttle.c | 7 + block/vmdk.c | 25 ++- block/vpc.c | 7 + block/vvfat.c | 12 + block/vxhs.c | 11 + blockdev.c | 16 ++ tests/qemu-iotests/051.out | 8 +- tests/qemu-iotests/051.pc.out | 8 +- tests/qemu-iotests/110 | 29 ++- tests/qemu-iotests/110.out | 9 +- tests/qemu-iotests/191 | 3 +- tests/qemu-iotests/191.out | 94 ++++---- 35 files changed, 877 insertions(+), 399 deletions(-) -- 2.13.6