block/stream: introduce a bottom node
commitc624b015bf14fe01f1e6452a36e63b3ea1ae4998
authorAndrey Shinkevich <andrey.shinkevich@virtuozzo.com>
Wed, 29 May 2019 17:56:16 +0000 (29 20:56 +0300)
committerMax Reitz <mreitz@redhat.com>
Tue, 2 Jul 2019 01:53:05 +0000 (2 03:53 +0200)
tree69c7773222230b154d357d05cbe621b28b655158
parent96a07d5bf447e616361acd4181a0fb24377483d9
block/stream: introduce a bottom node

The bottom node is the intermediate block device that has the base as its
backing image. It is used instead of the base node while a block stream
job is running to avoid dependency on the base that may change due to the
parallel jobs. The change may take place due to a filter node as well that
is inserted between the base and the intermediate bottom node. It occurs
when the base node is the top one for another commit or stream job.
After the introduction of the bottom node, don't freeze its backing child,
that's the base, anymore.

Suggested-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Signed-off-by: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
Message-id: 1559152576-281803-4-git-send-email-andrey.shinkevich@virtuozzo.com
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
block/stream.c
tests/qemu-iotests/245