Skip to content

Commit

Permalink
quorum: Implement recursive .bdrv_recurse_is_first_non_filter in quorum.
Browse files Browse the repository at this point in the history
This is used to activate quorum snapshot.

Signed-off-by: Benoit Canet <benoit@irqsave.net>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
  • Loading branch information
benoit-canet authored and kevmw committed Feb 21, 2014
1 parent 1c508d1 commit 98a7a38
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions block/quorum.c
Expand Up @@ -655,6 +655,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->num_children; 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",
Expand All @@ -668,6 +685,8 @@ static BlockDriver bdrv_quorum = {
.bdrv_aio_readv = quorum_aio_readv,
.bdrv_aio_writev = quorum_aio_writev,
.bdrv_invalidate_cache = quorum_invalidate_cache,

.bdrv_recurse_is_first_non_filter = quorum_recurse_is_first_non_filter,
};

static void bdrv_quorum_init(void)
Expand Down

0 comments on commit 98a7a38

Please sign in to comment.