[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 2/9] parallels: Fix data_end field value in parallels_co_check()
From: |
Alexander Ivanov |
Subject: |
[PATCH 2/9] parallels: Fix data_end field value in parallels_co_check() |
Date: |
Thu, 18 Aug 2022 17:14:49 +0200 |
When an image is opened for check there is no error if an offset in the BAT
points outside the image. In such a way we can repair the image.
Out-of-image offsets are repaired in the check, but data_end field
still points outside. Fix this field by file size.
Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
---
block/parallels.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/block/parallels.c b/block/parallels.c
index c245ca35cd..24c05b95e8 100644
--- a/block/parallels.c
+++ b/block/parallels.c
@@ -513,7 +513,15 @@ static int coroutine_fn
parallels_co_check(BlockDriverState *bs,
res->leaks_fixed += count;
}
}
-
+ /*
+ * If there were an out-of-image cluster it would be repaired,
+ * but s->data_end still would point outside image.
+ * Fix s->data_end by the file size.
+ */
+ size >>= BDRV_SECTOR_BITS;
+ if (s->data_end > size) {
+ s->data_end = size;
+ }
out:
qemu_co_mutex_unlock(&s->lock);
return ret;
--
2.34.1
- [PATCH 6/9] parallels: Replace qemu_co_mutex_lock by WITH_QEMU_LOCK_GUARD, (continued)
- [PATCH 6/9] parallels: Replace qemu_co_mutex_lock by WITH_QEMU_LOCK_GUARD, Alexander Ivanov, 2022/08/08
- [PATCH 5/9] parallels: Move statistic collection to a separate function, Alexander Ivanov, 2022/08/08
- [PATCH 8/9] parallels: Replace bdrv_co_pwrite_sync by bdrv_co_flush for BAT flushing, Alexander Ivanov, 2022/08/08
- [PATCH 9/9] parallels: Merge parallels_check_fragmentation to parallels_collect_statistics, Alexander Ivanov, 2022/08/08
- [PATCH 0/9] parallels: Refactor the code of images checks and fix a bug, Alexander Ivanov, 2022/08/18
- [PATCH 1/9] parallels: Out of image offset in BAT leads to image inflation, Alexander Ivanov, 2022/08/18
- [PATCH 3/9] parallels: create parallels_set_bat_entry_helper() to assign BAT value, Alexander Ivanov, 2022/08/18
- [PATCH 2/9] parallels: Fix data_end field value in parallels_co_check(),
Alexander Ivanov <=
- [PATCH 9/9] parallels: Replace qemu_co_mutex_lock by WITH_QEMU_LOCK_GUARD, Alexander Ivanov, 2022/08/18
- [PATCH 7/9] parallels: Move check of leaks to a separate function, Alexander Ivanov, 2022/08/18
- [PATCH 5/9] parallels: Move check of unclean image to a separate function, Alexander Ivanov, 2022/08/18
- [PATCH 6/9] parallels: Move check of cluster outside image to a separate function, Alexander Ivanov, 2022/08/18
- [PATCH 4/9] parallels: Use generic infrastructure for BAT writing in parallels_co_check(), Alexander Ivanov, 2022/08/18
- [PATCH 8/9] parallels: Move statistic collection to a separate function, Alexander Ivanov, 2022/08/18
- Re: [PATCH 0/9] parallels: Refactor the code of images checks and fix a bug, Denis V. Lunev, 2022/08/19