[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 1/5] block: Mark commit and mirror as filter drivers
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
[PATCH v2 1/5] block: Mark commit and mirror as filter drivers |
Date: |
Thu, 19 Dec 2019 11:51:02 +0300 |
From: Max Reitz <address@hidden>
The commit and mirror block nodes are filters, so they should be marked
as such.
Signed-off-by: Max Reitz <address@hidden>
Signed-off-by: Vladimir Sementsov-Ogievskiy <address@hidden>
[squash comment fix from another Max's patch and adjust commit msg]
---
include/block/block_int.h | 8 +++++---
block/commit.c | 2 ++
block/mirror.c | 2 ++
3 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/include/block/block_int.h b/include/block/block_int.h
index dd033d0b37..964ce58481 100644
--- a/include/block/block_int.h
+++ b/include/block/block_int.h
@@ -89,9 +89,11 @@ struct BlockDriver {
int instance_size;
/* set to true if the BlockDriver is a block filter. Block filters pass
- * certain callbacks that refer to data (see block.c) to their bs->file if
- * the driver doesn't implement them. Drivers that do not wish to forward
- * must implement them and return -ENOTSUP.
+ * certain callbacks that refer to data (see block.c) to their bs->file
+ * or bs->backing (whichever one exists) if the driver doesn't implement
+ * them. Drivers that do not wish to forward must implement them and return
+ * -ENOTSUP.
+ * Note that filters are not allowed to modify data.
*/
bool is_filter;
/* for snapshots block filter like Quorum can implement the
diff --git a/block/commit.c b/block/commit.c
index 23c90b3b91..9b455c4285 100644
--- a/block/commit.c
+++ b/block/commit.c
@@ -253,6 +253,8 @@ static BlockDriver bdrv_commit_top = {
.bdrv_co_block_status = bdrv_co_block_status_from_backing,
.bdrv_refresh_filename = bdrv_commit_top_refresh_filename,
.bdrv_child_perm = bdrv_commit_top_child_perm,
+
+ .is_filter = true,
};
void commit_start(const char *job_id, BlockDriverState *bs,
diff --git a/block/mirror.c b/block/mirror.c
index f0f2d9dff1..8cbbe1e065 100644
--- a/block/mirror.c
+++ b/block/mirror.c
@@ -1505,6 +1505,8 @@ static BlockDriver bdrv_mirror_top = {
.bdrv_co_block_status = bdrv_co_block_status_from_backing,
.bdrv_refresh_filename = bdrv_mirror_top_refresh_filename,
.bdrv_child_perm = bdrv_mirror_top_child_perm,
+
+ .is_filter = true,
};
static BlockJob *mirror_start_job(
--
2.21.0
- [PATCH v2 0/5] fix migration with bitmaps and mirror, Vladimir Sementsov-Ogievskiy, 2019/12/19
- [PATCH v2 3/5] block/dirty-bitmap: add bdrv_has_named_bitmaps helper, Vladimir Sementsov-Ogievskiy, 2019/12/19
- [PATCH v2 5/5] iotests: 194: test also migration of dirty bitmap, Vladimir Sementsov-Ogievskiy, 2019/12/19
- [PATCH v2 2/5] migretion/block-dirty-bitmap: refactor init_dirty_bitmap_migration, Vladimir Sementsov-Ogievskiy, 2019/12/19
- [PATCH v2 1/5] block: Mark commit and mirror as filter drivers,
Vladimir Sementsov-Ogievskiy <=
- [PATCH v2 4/5] migration/block-dirty-bitmap: fix bitmaps migration during mirror job, Vladimir Sementsov-Ogievskiy, 2019/12/19
- Re: [PATCH v2 0/5] fix migration with bitmaps and mirror, Peter Krempa, 2019/12/19