[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 14/21] quorum: Stop marking it as a filter
From: |
Max Reitz |
Subject: |
[PATCH v3 14/21] quorum: Stop marking it as a filter |
Date: |
Thu, 30 Jan 2020 22:44:24 +0100 |
Quorum is not a filter, for example because it cannot guarantee which of
its children will serve the next request. Thus, any of its children may
differ from the data visible to quorum's parents.
We have other filters with multiple children, but they differ in this
aspect:
- blkverify quits the whole qemu process if its children differ. As
such, we can always skip it when we want to skip it (as a filter node)
by going to any of its children. Both have the same data.
- replication generally serves requests from bs->file, so this is its
only actually filtered child.
- Block job filters currently only have one child, but they will
probably get more children in the future. Still, they will always
have only one actually filtered child.
Having "filters" as a dedicated node category only makes sense if you
can skip them by going to a one fixed child that always shows the same
data as the filter node. Quorum cannot fulfill this, so it is not a
filter.
Signed-off-by: Max Reitz <address@hidden>
Reviewed-by: Vladimir Sementsov-Ogievskiy <address@hidden>
---
block/quorum.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/block/quorum.c b/block/quorum.c
index 476def878d..d85db88dbb 100644
--- a/block/quorum.c
+++ b/block/quorum.c
@@ -1234,7 +1234,6 @@ static BlockDriver bdrv_quorum = {
.bdrv_child_perm = quorum_child_perm,
- .is_filter = true,
.bdrv_recurse_can_replace = quorum_recurse_can_replace,
.strong_runtime_opts = quorum_strong_runtime_opts,
--
2.24.1
- [PATCH v3 03/21] block: Drop bdrv_is_first_non_filter(), (continued)
- [PATCH v3 03/21] block: Drop bdrv_is_first_non_filter(), Max Reitz, 2020/01/30
- [PATCH v3 05/21] quorum: Fix child permissions, Max Reitz, 2020/01/30
- [PATCH v3 07/21] blkverify: Implement .bdrv_recurse_can_replace(), Max Reitz, 2020/01/30
- [PATCH v3 06/21] block: Add bdrv_recurse_can_replace(), Max Reitz, 2020/01/30
- [PATCH v3 08/21] quorum: Store children in own structure, Max Reitz, 2020/01/30
- [PATCH v3 09/21] quorum: Add QuorumChild.to_be_replaced, Max Reitz, 2020/01/30
- [PATCH v3 10/21] quorum: Implement .bdrv_recurse_can_replace(), Max Reitz, 2020/01/30
- [PATCH v3 11/21] block: Use bdrv_recurse_can_replace(), Max Reitz, 2020/01/30
- [PATCH v3 12/21] block: Remove bdrv_recurse_is_first_non_filter(), Max Reitz, 2020/01/30
- [PATCH v3 13/21] mirror: Double-check immediately before replacing, Max Reitz, 2020/01/30
- [PATCH v3 14/21] quorum: Stop marking it as a filter,
Max Reitz <=
- [PATCH v3 16/21] iotests: Add VM.assert_block_path(), Max Reitz, 2020/01/30
- [PATCH v3 15/21] iotests: Use complete_and_wait() in 155, Max Reitz, 2020/01/30
- [PATCH v3 18/21] iotests: Resolve TODOs in 041, Max Reitz, 2020/01/30
- [PATCH v3 17/21] iotests/041: Drop superfluous shutdowns, Max Reitz, 2020/01/30
- [PATCH v3 19/21] iotests: Use self.image_len in TestRepairQuorum, Max Reitz, 2020/01/30
- [PATCH v3 20/21] iotests: Add tests for invalid Quorum @replaces, Max Reitz, 2020/01/30
- [PATCH v3 21/21] iotests: Check that @replaces can replace filters, Max Reitz, 2020/01/30