Commit dd65a52e authored by Kevin Wolf's avatar Kevin Wolf
Browse files

block: Fix pending requests check in bdrv_append()



bdrv_append() cares about isolation of the node that it modifies, but
not about activity in some subtree below it. Instead of using the
recursive bdrv_requests_pending(), directly check bs->in_flight, which
considers only the node in question.

Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
Reviewed-by: default avatarMax Reitz <mreitz@redhat.com>
Acked-by: default avatarFam Zheng <famz@redhat.com>
parent 4e9e4323
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -2897,8 +2897,8 @@ static void change_parent_backing_link(BlockDriverState *from,
 */
void bdrv_append(BlockDriverState *bs_new, BlockDriverState *bs_top)
{
    assert(!bdrv_requests_pending(bs_top));
    assert(!bdrv_requests_pending(bs_new));
    assert(!atomic_read(&bs_top->in_flight));
    assert(!atomic_read(&bs_new->in_flight));

    bdrv_ref(bs_top);