The block-stream job needs to own the base node as the limiter for the copy-on-read operation. So, the base node is included in the job node list by calling to the function block_job_add_bdrv(). Also, the block-stream job would not allow the base node to go away due to the graph modification, e.g. when a filter node is inserted between the bottom node and the base node. For that reason, the flag BLK_PERM_GRAPH_MOD is unset in the shared permission bit mask of the base node.
Andrey Shinkevich (2): iotests: 030 TestParallelOps non-shared base node block-stream: include base node into the job protected list block/stream.c | 9 +++++++++ tests/qemu-iotests/030 | 34 ++++++++++++++++++---------------- 2 files changed, 27 insertions(+), 16 deletions(-) -- 1.8.3.1