[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v5 1/9] block: introduce bdrv_remove_file_or_backing_child()
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
[PATCH v5 1/9] block: introduce bdrv_remove_file_or_backing_child() |
Date: |
Sat, 15 May 2021 16:46:57 +0300 |
To be used for reopen in future commit.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
---
block.c | 25 +++++++++++++++++--------
1 file changed, 17 insertions(+), 8 deletions(-)
diff --git a/block.c b/block.c
index 9ad725d205..75565ce4d4 100644
--- a/block.c
+++ b/block.c
@@ -4770,16 +4770,14 @@ static TransactionActionDrv
bdrv_remove_filter_or_cow_child_drv = {
.clean = g_free,
};
-/*
- * A function to remove backing-chain child of @bs if exists: cow child for
- * format nodes (always .backing) and filter child for filters (may be .file or
- * .backing)
- */
-static void bdrv_remove_filter_or_cow_child(BlockDriverState *bs,
- Transaction *tran)
+/* A function to remove backing or file child of @bs */
+static void bdrv_remove_file_or_backing_child(BlockDriverState *bs,
+ BdrvChild *child,
+ Transaction *tran)
{
BdrvRemoveFilterOrCowChild *s;
- BdrvChild *child = bdrv_filter_or_cow_child(bs);
+
+ assert(child == bs->backing || child == bs->file);
if (!child) {
return;
@@ -4804,6 +4802,17 @@ static void
bdrv_remove_filter_or_cow_child(BlockDriverState *bs,
}
}
+/*
+ * A function to remove backing-chain child of @bs if exists: cow child for
+ * format nodes (always .backing) and filter child for filters (may be .file or
+ * .backing)
+ */
+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);
+}
+
static int bdrv_replace_node_noperm(BlockDriverState *from,
BlockDriverState *to,
bool auto_skip, Transaction *tran,
--
2.29.2
- [PATCH v5 0/9] Allow changing bs->file on reopen, Vladimir Sementsov-Ogievskiy, 2021/05/15
- [PATCH v5 2/9] block: introduce bdrv_set_file_or_backing_noperm(), Vladimir Sementsov-Ogievskiy, 2021/05/15
- [PATCH v5 1/9] block: introduce bdrv_remove_file_or_backing_child(),
Vladimir Sementsov-Ogievskiy <=
- [PATCH v5 3/9] block: bdrv_reopen_parse_backing(): don't check aio context, Vladimir Sementsov-Ogievskiy, 2021/05/15
- [PATCH v5 4/9] block: bdrv_reopen_parse_backing(): don't check frozen child, Vladimir Sementsov-Ogievskiy, 2021/05/15
- [PATCH v5 5/9] block: bdrv_reopen_parse_backing(): simplify handling implicit filters, Vladimir Sementsov-Ogievskiy, 2021/05/15
- [PATCH v5 6/9] block: move supports_backing check to bdrv_set_file_or_backing_noperm(), Vladimir Sementsov-Ogievskiy, 2021/05/15
- [PATCH v5 7/9] block: BDRVReopenState: drop replace_backing_bs field, Vladimir Sementsov-Ogievskiy, 2021/05/15
- [PATCH v5 8/9] block: Allow changing bs->file on reopen, Vladimir Sementsov-Ogievskiy, 2021/05/15
- [PATCH v5 9/9] iotests: Test replacing files with x-blockdev-reopen, Vladimir Sementsov-Ogievskiy, 2021/05/15
- Re: [PATCH v5 0/9] Allow changing bs->file on reopen, Vladimir Sementsov-Ogievskiy, 2021/05/15