From: Benoît Canet <ben...@irqsave.net> Signed-off-by: Benoit Canet <ben...@irqsave.net> --- block/quorum.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+)
diff --git a/block/quorum.c b/block/quorum.c index 1b84b07..e7b2090 100644 --- a/block/quorum.c +++ b/block/quorum.c @@ -685,6 +685,23 @@ static coroutine_fn int quorum_co_flush(BlockDriverState *bs) return result; } +static bool quorum_recurse_is_first_non_filter(BlockDriverState *bs, + BlockDriverState *candidate) +{ + BDRVQuorumState *s = bs->opaque; + int i; + + for (i = 0; i < s->total; i++) { + bool perm = bdrv_recurse_is_first_non_filter(s->bs[i], + candidate); + if (perm) { + return true; + } + } + + return false; +} + static BlockDriver bdrv_quorum = { .format_name = "quorum", .protocol_name = "quorum", @@ -699,6 +716,8 @@ static BlockDriver bdrv_quorum = { .bdrv_aio_writev = quorum_aio_writev, .bdrv_invalidate_cache = quorum_invalidate_cache, .bdrv_co_get_block_status = quorum_co_get_block_status, + + .bdrv_recurse_is_first_non_filter = quorum_recurse_is_first_non_filter, }; static void bdrv_quorum_init(void) -- 1.8.3.2