diff mbox series

[02/21] parallels: mark driver as supporting CBT

Message ID 20230915184130.403366-3-den@openvz.org (mailing list archive)
State New, archived
Headers show
Series implement discard operation for Parallels images | expand

Commit Message

Denis V. Lunev Sept. 15, 2023, 6:41 p.m. UTC
Parallels driver indeed support Parallels Dirty Bitmap Feature in
read-only mode. The patch adds bdrv_supports_persistent_dirty_bitmap()
callback which always return 1 to indicate that.

This will allow to copy CBT from Parallels image with qemu-img.

Note: read-write support is signalled through
bdrv_co_can_store_new_dirty_bitmap() and is different.

Signed-off-by: Denis V. Lunev <den@openvz.org>
---
 block/parallels.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Alexander Ivanov Sept. 18, 2023, 7:43 a.m. UTC | #1
On 9/15/23 20:41, Denis V. Lunev wrote:
> Parallels driver indeed support Parallels Dirty Bitmap Feature in
> read-only mode. The patch adds bdrv_supports_persistent_dirty_bitmap()
> callback which always return 1 to indicate that.
>
> This will allow to copy CBT from Parallels image with qemu-img.
>
> Note: read-write support is signalled through
> bdrv_co_can_store_new_dirty_bitmap() and is different.
>
> Signed-off-by: Denis V. Lunev <den@openvz.org>
> ---
>   block/parallels.c | 6 ++++++
>   1 file changed, 6 insertions(+)
>
> diff --git a/block/parallels.c b/block/parallels.c
> index 2ebd8e1301..428f72de1c 100644
> --- a/block/parallels.c
> +++ b/block/parallels.c
> @@ -1248,6 +1248,11 @@ static void parallels_close(BlockDriverState *bs)
>       error_free(s->migration_blocker);
>   }
>   
> +static bool parallels_is_support_dirty_bitmaps(BlockDriverState *bs)
> +{
> +    return 1;
> +}
> +
>   static BlockDriver bdrv_parallels = {
>       .format_name                = "parallels",
>       .instance_size              = sizeof(BDRVParallelsState),
> @@ -1256,6 +1261,7 @@ static BlockDriver bdrv_parallels = {
>       .supports_backing           = true,
>   
>       .bdrv_has_zero_init         = bdrv_has_zero_init_1,
> +    .bdrv_supports_persistent_dirty_bitmap = parallels_is_support_dirty_bitmaps,
>   
>       .bdrv_probe                 = parallels_probe,
>       .bdrv_open                  = parallels_open,
Reviewed-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
diff mbox series

Patch

diff --git a/block/parallels.c b/block/parallels.c
index 2ebd8e1301..428f72de1c 100644
--- a/block/parallels.c
+++ b/block/parallels.c
@@ -1248,6 +1248,11 @@  static void parallels_close(BlockDriverState *bs)
     error_free(s->migration_blocker);
 }
 
+static bool parallels_is_support_dirty_bitmaps(BlockDriverState *bs)
+{
+    return 1;
+}
+
 static BlockDriver bdrv_parallels = {
     .format_name                = "parallels",
     .instance_size              = sizeof(BDRVParallelsState),
@@ -1256,6 +1261,7 @@  static BlockDriver bdrv_parallels = {
     .supports_backing           = true,
 
     .bdrv_has_zero_init         = bdrv_has_zero_init_1,
+    .bdrv_supports_persistent_dirty_bitmap = parallels_is_support_dirty_bitmaps,
 
     .bdrv_probe                 = parallels_probe,
     .bdrv_open                  = parallels_open,