Skip to content

Commit

Permalink
block: refactor bdrv_remove_file_or_backing_child to bdrv_remove_child
Browse files Browse the repository at this point in the history
Now the function can remove any child, so give it more common name.
Drop assertions and drop bs argument which becomes unused. Function
would be reused in a further commit.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Hanna Reitz <hreitz@redhat.com>
Message-Id: <20220726201134.924743-16-vsementsov@yandex-team.ru>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
  • Loading branch information
Vladimir Sementsov-Ogievskiy authored and kevmw committed Oct 27, 2022
1 parent c5c2174 commit 57f0894
Showing 1 changed file with 9 additions and 18 deletions.
27 changes: 9 additions & 18 deletions block.c
Expand Up @@ -92,9 +92,7 @@ static bool bdrv_recurse_has_child(BlockDriverState *bs,

static void bdrv_replace_child_noperm(BdrvChild *child,
BlockDriverState *new_bs);
static void bdrv_remove_file_or_backing_child(BlockDriverState *bs,
BdrvChild *child,
Transaction *tran);
static void bdrv_remove_child(BdrvChild *child, Transaction *tran);
static void bdrv_remove_filter_or_cow_child(BlockDriverState *bs,
Transaction *tran);

Expand Down Expand Up @@ -3342,7 +3340,7 @@ static int bdrv_set_file_or_backing_noperm(BlockDriverState *parent_bs,

if (child) {
bdrv_unset_inherits_from(parent_bs, child, tran);
bdrv_remove_file_or_backing_child(parent_bs, child, tran);
bdrv_remove_child(child, tran);
}

if (!child_bs) {
Expand Down Expand Up @@ -5023,26 +5021,19 @@ static bool should_update_child(BdrvChild *c, BlockDriverState *to)
return ret;
}

static void bdrv_remove_filter_or_cow_child_commit(void *opaque)
static void bdrv_remove_child_commit(void *opaque)
{
GLOBAL_STATE_CODE();
bdrv_child_free(opaque);
}

static TransactionActionDrv bdrv_remove_filter_or_cow_child_drv = {
.commit = bdrv_remove_filter_or_cow_child_commit,
static TransactionActionDrv bdrv_remove_child_drv = {
.commit = bdrv_remove_child_commit,
};

/*
* A function to remove backing or file child of @bs.
* Function doesn't update permissions, caller is responsible for this.
*/
static void bdrv_remove_file_or_backing_child(BlockDriverState *bs,
BdrvChild *child,
Transaction *tran)
/* Function doesn't update permissions, caller is responsible for this. */
static void bdrv_remove_child(BdrvChild *child, Transaction *tran)
{
assert(child == bs->backing || child == bs->file);

if (!child) {
return;
}
Expand All @@ -5051,7 +5042,7 @@ static void bdrv_remove_file_or_backing_child(BlockDriverState *bs,
bdrv_replace_child_tran(child, NULL, tran);
}

tran_add(tran, &bdrv_remove_filter_or_cow_child_drv, child);
tran_add(tran, &bdrv_remove_child_drv, child);
}

/*
Expand All @@ -5062,7 +5053,7 @@ static void bdrv_remove_file_or_backing_child(BlockDriverState *bs,
static void bdrv_remove_filter_or_cow_child(BlockDriverState *bs,
Transaction *tran)
{
bdrv_remove_file_or_backing_child(bs, bdrv_filter_or_cow_child(bs), tran);
bdrv_remove_child(bdrv_filter_or_cow_child(bs), tran);
}

static int bdrv_replace_node_noperm(BlockDriverState *from,
Expand Down

0 comments on commit 57f0894

Please sign in to comment.