From: Kevin Wolf Date: Fri, 18 Nov 2022 17:41:03 +0000 (+0100) Subject: block: Don't use subtree drains in bdrv_drop_intermediate() X-Git-Tag: xenpvh-tag~73^2~38 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=631086deefc32690ee56efed1c5b891dec31ae37;p=users%2Fdwmw2%2Fqemu.git block: Don't use subtree drains in bdrv_drop_intermediate() Instead of using a subtree drain from the top node (which also drains child nodes of base that we're not even interested in), use a normal drain for base, which automatically drains all of the parents, too. Signed-off-by: Kevin Wolf Reviewed-by: Vladimir Sementsov-Ogievskiy Reviewed-by: Hanna Reitz Message-Id: <20221118174110.55183-9-kwolf@redhat.com> Signed-off-by: Kevin Wolf --- diff --git a/block.c b/block.c index dd329a16ce..db043346d8 100644 --- a/block.c +++ b/block.c @@ -5600,7 +5600,7 @@ int bdrv_drop_intermediate(BlockDriverState *top, BlockDriverState *base, GLOBAL_STATE_CODE(); bdrv_ref(top); - bdrv_subtree_drained_begin(top); + bdrv_drained_begin(base); if (!top->drv || !base->drv) { goto exit; @@ -5673,7 +5673,7 @@ int bdrv_drop_intermediate(BlockDriverState *top, BlockDriverState *base, ret = 0; exit: - bdrv_subtree_drained_end(top); + bdrv_drained_end(base); bdrv_unref(top); return ret; }