Note: this series is based on the another one "block: Deal with filters" by Max Reitz that could be found in the branches: https://git.xanclic.moe/XanClic/qemu child-access-functions-v6 https://github.com/XanClic/qemu child-access-functions-v6
v7: 01: A complete reversion of the commit c624b015bf14f "block/stream: introduce a bottom node" doesn't make a sense as the patch "stream: Deal with filters" replaces the concept of the 'bottom node' with the one of the 'base_overlay' and the 'above_base', introduced by Max in the series "block: Deal with filters". 02: #include "block/block-copy.h" was removed. The extra "state->active = true" was dropped. The comment about the bdrv_child_refresh_perms() supplied. 03: "filter_node_name = NULL" dropped in the qmp_block_stream(). 04: The comment to the commit was extended with an explanation of why the test case 'test_stream_parallel' was removed. Due to the v6 review, the initial "char *base_fmt" is kept for the final backing file change no more. I urge to keep it. The v6 Message-Id: <1597785880-431103-1-git-send-email-andrey.shinkev...@virtuozzo.com> Andrey Shinkevich (4): copy-on-read: Support preadv/pwritev_part functions copy-on-read: add filter append/drop functions qapi: add filter-node-name to block-stream block: apply COR-filter to block-stream jobs block/copy-on-read.c | 132 +++++++++++++++++++++++++++++++++++++---- block/copy-on-read.h | 35 +++++++++++ block/monitor/block-hmp-cmds.c | 4 +- block/stream.c | 62 ++++++++++++++----- blockdev.c | 4 +- include/block/block_int.h | 7 ++- qapi/block-core.json | 6 ++ tests/qemu-iotests/030 | 50 ++-------------- tests/qemu-iotests/030.out | 4 +- tests/qemu-iotests/245 | 19 ++++-- 10 files changed, 240 insertions(+), 83 deletions(-) create mode 100644 block/copy-on-read.h -- 1.8.3.1