This series introduces a bottom intermediate node that eliminates the dependency on the base that may change while stream job is running. It happens when stream/commit parallel jobs are running on the same backing chain. The base node of the stream job may be a top node of the parallel commit job and can change before the stream job is completed. We avoid that dependency by introducing the bottom node.
v5: [resend by Vladimir] 01: use comment wording in block/io.c suggested by Alberto Now the whole series are reviewed-by Alberto and me. v4: trace_stream_start reverted to the base. bdrv_is_allocated_above_inclusive() deleted and the new parameter 'bool include_base' was added to the bdrv_is_allocated_above(). Andrey Shinkevich (2): block: include base when checking image chain for block allocation block/stream: introduce a bottom node Vladimir Sementsov-Ogievskiy (1): block/stream: refactor stream_run: drop goto include/block/block.h | 3 +- block/commit.c | 2 +- block/io.c | 18 ++++++++---- block/mirror.c | 2 +- block/replication.c | 2 +- block/stream.c | 62 ++++++++++++++++++++---------------------- tests/qemu-iotests/245 | 4 +-- 7 files changed, 49 insertions(+), 44 deletions(-) -- 2.18.0