[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v6 1/9] block: introduce bdrv_remove_file_or_backing_child()
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
[PATCH v6 1/9] block: introduce bdrv_remove_file_or_backing_child() |
Date: |
Thu, 10 Jun 2021 15:05:29 +0300 |
To be used for reopen in future commit.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
---
block.c | 24 +++++++++++++++++-------
1 file changed, 17 insertions(+), 7 deletions(-)
diff --git a/block.c b/block.c
index 98673e788a..d21c9e4316 100644
--- a/block.c
+++ b/block.c
@@ -4795,17 +4795,16 @@ static TransactionActionDrv
bdrv_remove_filter_or_cow_child_drv = {
};
/*
- * 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)
- *
+ * A function to remove backing or file child of @bs.
* Function doesn't update permissions, caller is responsible for this.
*/
-static void bdrv_remove_filter_or_cow_child(BlockDriverState *bs,
- Transaction *tran)
+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;
@@ -4830,6 +4829,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 v6 0/9] Allow changing bs->file on reopen, Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v6 1/9] block: introduce bdrv_remove_file_or_backing_child(),
Vladimir Sementsov-Ogievskiy <=
- [PATCH v6 3/9] block: bdrv_reopen_parse_backing(): don't check aio context, Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v6 4/9] block: bdrv_reopen_parse_backing(): don't check frozen child, Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v6 5/9] block: bdrv_reopen_parse_backing(): simplify handling implicit filters, Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v6 9/9] iotests: Test replacing files with x-blockdev-reopen, Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v6 2/9] block: introduce bdrv_set_file_or_backing_noperm(), Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v6 6/9] block: move supports_backing check to bdrv_set_file_or_backing_noperm(), Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v6 7/9] block: BDRVReopenState: drop replace_backing_bs field, Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v6 8/9] block: Allow changing bs->file on reopen, Vladimir Sementsov-Ogievskiy, 2021/06/10
- Re: [PATCH v6 0/9] Allow changing bs->file on reopen, Kevin Wolf, 2021/06/28