mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-10-14 23:13:30 +00:00
blkverify: Implement .bdrv_recurse_can_replace()
Signed-off-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Message-Id: <20200218103454.296704-8-mreitz@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
5d69b5ab85
commit
998a6b2fc5
|
@ -282,6 +282,20 @@ static bool blkverify_recurse_is_first_non_filter(BlockDriverState *bs,
|
||||||
return bdrv_recurse_is_first_non_filter(s->test_file->bs, candidate);
|
return bdrv_recurse_is_first_non_filter(s->test_file->bs, candidate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool blkverify_recurse_can_replace(BlockDriverState *bs,
|
||||||
|
BlockDriverState *to_replace)
|
||||||
|
{
|
||||||
|
BDRVBlkverifyState *s = bs->opaque;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* blkverify quits the whole qemu process if there is a mismatch
|
||||||
|
* between bs->file->bs and s->test_file->bs. Therefore, we know
|
||||||
|
* know that both must match bs and we can recurse down to either.
|
||||||
|
*/
|
||||||
|
return bdrv_recurse_can_replace(bs->file->bs, to_replace) ||
|
||||||
|
bdrv_recurse_can_replace(s->test_file->bs, to_replace);
|
||||||
|
}
|
||||||
|
|
||||||
static void blkverify_refresh_filename(BlockDriverState *bs)
|
static void blkverify_refresh_filename(BlockDriverState *bs)
|
||||||
{
|
{
|
||||||
BDRVBlkverifyState *s = bs->opaque;
|
BDRVBlkverifyState *s = bs->opaque;
|
||||||
|
@ -328,6 +342,7 @@ static BlockDriver bdrv_blkverify = {
|
||||||
|
|
||||||
.is_filter = true,
|
.is_filter = true,
|
||||||
.bdrv_recurse_is_first_non_filter = blkverify_recurse_is_first_non_filter,
|
.bdrv_recurse_is_first_non_filter = blkverify_recurse_is_first_non_filter,
|
||||||
|
.bdrv_recurse_can_replace = blkverify_recurse_can_replace,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void bdrv_blkverify_init(void)
|
static void bdrv_blkverify_init(void)
|
||||||
|
|
Loading…
Reference in a new issue