diff mbox series

[v3,02/21] parallels: Move inactivation code to a separate function

Message ID 20231027074636.430139-3-alexander.ivanov@virtuozzo.com
State New
Headers show
Series parallels: Add full dirty bitmap support | expand

Commit Message

Alexander Ivanov Oct. 27, 2023, 7:46 a.m. UTC
We are going to add parallels image extensions storage and need a separate
function for inactivation code.

Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
---
 block/parallels.c | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

Comments

Denis V. Lunev Oct. 30, 2023, 8:45 a.m. UTC | #1
On 10/27/23 09:46, Alexander Ivanov wrote:
> We are going to add parallels image extensions storage and need a separate
> function for inactivation code.
>
> Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
> ---
>   block/parallels.c | 22 ++++++++++++++++------
>   1 file changed, 16 insertions(+), 6 deletions(-)
>
> diff --git a/block/parallels.c b/block/parallels.c
> index 01a61a4ebd..8962bc9fe5 100644
> --- a/block/parallels.c
> +++ b/block/parallels.c
> @@ -1428,18 +1428,27 @@ fail:
>       return ret;
>   }
>   
> +static int parallels_inactivate(BlockDriverState *bs)
> +{
> +    BDRVParallelsState *s = bs->opaque;
> +    int ret;
> +
> +    s->header->inuse = 0;
> +    parallels_update_header(bs);
> +
> +    /* errors are ignored, so we might as well pass exact=true */
> +    ret = bdrv_truncate(bs->file, s->data_end << BDRV_SECTOR_BITS, true,
> +                        PREALLOC_MODE_OFF, 0, NULL);
> +
> +    return ret;
> +}
>   
>   static void parallels_close(BlockDriverState *bs)
>   {
>       BDRVParallelsState *s = bs->opaque;
>   
>       if ((bs->open_flags & BDRV_O_RDWR) && !(bs->open_flags & BDRV_O_INACTIVE)) {
> -        s->header->inuse = 0;
> -        parallels_update_header(bs);
> -
> -        /* errors are ignored, so we might as well pass exact=true */
> -        bdrv_truncate(bs->file, s->data_end << BDRV_SECTOR_BITS, true,
> -                      PREALLOC_MODE_OFF, 0, NULL);
> +        parallels_inactivate(bs);
>       }
>   
>       parallels_free_used_bitmap(bs);
> @@ -1478,6 +1487,7 @@ static BlockDriver bdrv_parallels = {
>       .bdrv_co_check              = parallels_co_check,
>       .bdrv_co_pdiscard           = parallels_co_pdiscard,
>       .bdrv_co_pwrite_zeroes      = parallels_co_pwrite_zeroes,
> +    .bdrv_inactivate            = parallels_inactivate,
>   };
>   
>   static void bdrv_parallels_init(void)
Reviewed-by: Denis V. Lunev <den@openvz.org>
diff mbox series

Patch

diff --git a/block/parallels.c b/block/parallels.c
index 01a61a4ebd..8962bc9fe5 100644
--- a/block/parallels.c
+++ b/block/parallels.c
@@ -1428,18 +1428,27 @@  fail:
     return ret;
 }
 
+static int parallels_inactivate(BlockDriverState *bs)
+{
+    BDRVParallelsState *s = bs->opaque;
+    int ret;
+
+    s->header->inuse = 0;
+    parallels_update_header(bs);
+
+    /* errors are ignored, so we might as well pass exact=true */
+    ret = bdrv_truncate(bs->file, s->data_end << BDRV_SECTOR_BITS, true,
+                        PREALLOC_MODE_OFF, 0, NULL);
+
+    return ret;
+}
 
 static void parallels_close(BlockDriverState *bs)
 {
     BDRVParallelsState *s = bs->opaque;
 
     if ((bs->open_flags & BDRV_O_RDWR) && !(bs->open_flags & BDRV_O_INACTIVE)) {
-        s->header->inuse = 0;
-        parallels_update_header(bs);
-
-        /* errors are ignored, so we might as well pass exact=true */
-        bdrv_truncate(bs->file, s->data_end << BDRV_SECTOR_BITS, true,
-                      PREALLOC_MODE_OFF, 0, NULL);
+        parallels_inactivate(bs);
     }
 
     parallels_free_used_bitmap(bs);
@@ -1478,6 +1487,7 @@  static BlockDriver bdrv_parallels = {
     .bdrv_co_check              = parallels_co_check,
     .bdrv_co_pdiscard           = parallels_co_pdiscard,
     .bdrv_co_pwrite_zeroes      = parallels_co_pwrite_zeroes,
+    .bdrv_inactivate            = parallels_inactivate,
 };
 
 static void bdrv_parallels_init(void)