All the checks were fixed to work with used bitmap. Create used bitmap in
parallels_open() even if need_check is true.

In some checks (like duplication check) we need to work with used bitmap
so it have to be created before checks are running.

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

diff --git a/block/parallels.c b/block/parallels.c
index 66990925a8..86958506d0 100644
--- a/block/parallels.c
+++ b/block/parallels.c
@@ -1426,13 +1426,11 @@ static int parallels_open(BlockDriverState *bs, QDict 
*options, int flags,
     }
     need_check = need_check || s->data_end > file_nb_sectors;
 
-    if (!need_check) {
-        ret = parallels_fill_used_bitmap(bs);
-        if (ret == -ENOMEM) {
-            goto fail;
-        }
-        need_check = need_check || ret < 0; /* These are correctable errors */
+    ret = parallels_fill_used_bitmap(bs);
+    if (ret == -ENOMEM) {
+        goto fail;
     }
+    need_check = need_check || ret < 0; /* These are correctable errors */
 
     /*
      * We don't repair the image here if it's opened for checks. Also we don't
-- 
2.40.1


Reply via email to