[PATCH v4 15/21] parallels: Reverse a conditional in parallels_check_leak() to reduce indents

Alexander Ivanov posted 21 patches 11 months ago
Maintainers: Stefan Hajnoczi <stefanha@redhat.com>, "Denis V. Lunev" <den@openvz.org>, Kevin Wolf <kwolf@redhat.com>, Hanna Reitz <hreitz@redhat.com>
There is a newer version of this series
[PATCH v4 15/21] parallels: Reverse a conditional in parallels_check_leak() to reduce indents
Posted by Alexander Ivanov 11 months ago
Let the function return a success code if a file size is not bigger than
image_end_offset. Thus we can decrease indents in the next code block.

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

diff --git a/block/parallels.c b/block/parallels.c
index d5d87984cf..fb7bc5e555 100644
--- a/block/parallels.c
+++ b/block/parallels.c
@@ -773,7 +773,7 @@ parallels_check_leak(BlockDriverState *bs, BdrvCheckResult *res,
                      BdrvCheckMode fix, bool explicit)
 {
     BDRVParallelsState *s = bs->opaque;
-    int64_t size;
+    int64_t size, count;
     int ret;
 
     size = bdrv_co_getlength(bs->file->bs);
@@ -781,43 +781,43 @@ parallels_check_leak(BlockDriverState *bs, BdrvCheckResult *res,
         res->check_errors++;
         return size;
     }
+    if (size <= res->image_end_offset) {
+        return 0;
+    }
+
+    count = DIV_ROUND_UP(size - res->image_end_offset, s->cluster_size);
+    if (explicit) {
+        fprintf(stderr,
+                "%s space leaked at the end of the image %" PRId64 "\n",
+                fix & BDRV_FIX_LEAKS ? "Repairing" : "ERROR",
+                size - res->image_end_offset);
+        res->leaks += count;
+    }
+    if (fix & BDRV_FIX_LEAKS) {
+        Error *local_err = NULL;
+
+        /*
+         * In order to really repair the image, we must shrink it.
+         * That means we have to pass exact=true.
+         */
+        ret = bdrv_co_truncate(bs->file, res->image_end_offset, true,
+                               PREALLOC_MODE_OFF, 0, &local_err);
+        if (ret < 0) {
+            error_report_err(local_err);
+            res->check_errors++;
+            return ret;
+        }
+        s->data_end = res->image_end_offset >> BDRV_SECTOR_BITS;
+
+        parallels_free_used_bitmap(bs);
+        ret = parallels_fill_used_bitmap(bs);
+        if (ret == -ENOMEM) {
+            res->check_errors++;
+            return ret;
+        }
 
-    if (size > res->image_end_offset) {
-        int64_t count;
-        count = DIV_ROUND_UP(size - res->image_end_offset, s->cluster_size);
         if (explicit) {
-            fprintf(stderr,
-                    "%s space leaked at the end of the image %" PRId64 "\n",
-                    fix & BDRV_FIX_LEAKS ? "Repairing" : "ERROR",
-                    size - res->image_end_offset);
-            res->leaks += count;
-        }
-        if (fix & BDRV_FIX_LEAKS) {
-            Error *local_err = NULL;
-
-            /*
-             * In order to really repair the image, we must shrink it.
-             * That means we have to pass exact=true.
-             */
-            ret = bdrv_co_truncate(bs->file, res->image_end_offset, true,
-                                   PREALLOC_MODE_OFF, 0, &local_err);
-            if (ret < 0) {
-                error_report_err(local_err);
-                res->check_errors++;
-                return ret;
-            }
-            s->data_end = res->image_end_offset >> BDRV_SECTOR_BITS;
-
-            parallels_free_used_bitmap(bs);
-            ret = parallels_fill_used_bitmap(bs);
-            if (ret == -ENOMEM) {
-                res->check_errors++;
-                return ret;
-            }
-
-            if (explicit) {
-                res->leaks_fixed += count;
-            }
+            res->leaks_fixed += count;
         }
     }
 
-- 
2.40.1
Re: [PATCH v4 15/21] parallels: Reverse a conditional in parallels_check_leak() to reduce indents
Posted by Denis V. Lunev 10 months, 1 week ago
On 12/28/23 11:12, Alexander Ivanov wrote:
> Let the function return a success code if a file size is not bigger than
> image_end_offset. Thus we can decrease indents in the next code block.
>
> Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
> ---
>   block/parallels.c | 72 +++++++++++++++++++++++------------------------
>   1 file changed, 36 insertions(+), 36 deletions(-)
>
> diff --git a/block/parallels.c b/block/parallels.c
> index d5d87984cf..fb7bc5e555 100644
> --- a/block/parallels.c
> +++ b/block/parallels.c
> @@ -773,7 +773,7 @@ parallels_check_leak(BlockDriverState *bs, BdrvCheckResult *res,
>                        BdrvCheckMode fix, bool explicit)
>   {
>       BDRVParallelsState *s = bs->opaque;
> -    int64_t size;
> +    int64_t size, count;
>       int ret;
>   
>       size = bdrv_co_getlength(bs->file->bs);
> @@ -781,43 +781,43 @@ parallels_check_leak(BlockDriverState *bs, BdrvCheckResult *res,
>           res->check_errors++;
>           return size;
>       }
> +    if (size <= res->image_end_offset) {
> +        return 0;
> +    }
> +
> +    count = DIV_ROUND_UP(size - res->image_end_offset, s->cluster_size);
> +    if (explicit) {
> +        fprintf(stderr,
> +                "%s space leaked at the end of the image %" PRId64 "\n",
> +                fix & BDRV_FIX_LEAKS ? "Repairing" : "ERROR",
> +                size - res->image_end_offset);
> +        res->leaks += count;
> +    }
> +    if (fix & BDRV_FIX_LEAKS) {
> +        Error *local_err = NULL;
> +
> +        /*
> +         * In order to really repair the image, we must shrink it.
> +         * That means we have to pass exact=true.
> +         */
> +        ret = bdrv_co_truncate(bs->file, res->image_end_offset, true,
> +                               PREALLOC_MODE_OFF, 0, &local_err);
> +        if (ret < 0) {
> +            error_report_err(local_err);
> +            res->check_errors++;
> +            return ret;
> +        }
> +        s->data_end = res->image_end_offset >> BDRV_SECTOR_BITS;
> +
> +        parallels_free_used_bitmap(bs);
> +        ret = parallels_fill_used_bitmap(bs);
> +        if (ret == -ENOMEM) {
> +            res->check_errors++;
> +            return ret;
> +        }
>   
> -    if (size > res->image_end_offset) {
> -        int64_t count;
> -        count = DIV_ROUND_UP(size - res->image_end_offset, s->cluster_size);
>           if (explicit) {
> -            fprintf(stderr,
> -                    "%s space leaked at the end of the image %" PRId64 "\n",
> -                    fix & BDRV_FIX_LEAKS ? "Repairing" : "ERROR",
> -                    size - res->image_end_offset);
> -            res->leaks += count;
> -        }
> -        if (fix & BDRV_FIX_LEAKS) {
> -            Error *local_err = NULL;
> -
> -            /*
> -             * In order to really repair the image, we must shrink it.
> -             * That means we have to pass exact=true.
> -             */
> -            ret = bdrv_co_truncate(bs->file, res->image_end_offset, true,
> -                                   PREALLOC_MODE_OFF, 0, &local_err);
> -            if (ret < 0) {
> -                error_report_err(local_err);
> -                res->check_errors++;
> -                return ret;
> -            }
> -            s->data_end = res->image_end_offset >> BDRV_SECTOR_BITS;
> -
> -            parallels_free_used_bitmap(bs);
> -            ret = parallels_fill_used_bitmap(bs);
> -            if (ret == -ENOMEM) {
> -                res->check_errors++;
> -                return ret;
> -            }
> -
> -            if (explicit) {
> -                res->leaks_fixed += count;
> -            }
> +            res->leaks_fixed += count;
>           }
>       }
>   
Reviewed-by: Denis V. Lunev <den@openvz.org>