aboutsummaryrefslogtreecommitdiff
path: root/block
diff options
context:
space:
mode:
authorAlexander Ivanov <alexander.ivanov@virtuozzo.com>2023-04-24 11:31:43 +0200
committerHanna Czenczek <hreitz@redhat.com>2023-06-05 13:13:55 +0200
commit9616f7a6c2eaed165e26227a4c84c24bcc2b3473 (patch)
tree6f5ce73f95c808701b2f4dfa974aa09ba1d9b0b2 /block
parent6d416e56a79b91e96bdb2d2a186da647bd737d01 (diff)
parallels: Fix statistics calculation
Exclude out-of-image clusters from allocated and fragmented clusters calculation. Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com> Message-Id: <20230424093147.197643-9-alexander.ivanov@virtuozzo.com> Reviewed-by: Hanna Czenczek <hreitz@redhat.com> Signed-off-by: Hanna Czenczek <hreitz@redhat.com>
Diffstat (limited to 'block')
-rw-r--r--block/parallels.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/block/parallels.c b/block/parallels.c
index 7f0f72e879..fd1e2860d0 100644
--- a/block/parallels.c
+++ b/block/parallels.c
@@ -512,7 +512,11 @@ parallels_co_check(BlockDriverState *bs, BdrvCheckResult *res,
prev_off = 0;
for (i = 0; i < s->bat_size; i++) {
int64_t off = bat2sect(s, i) << BDRV_SECTOR_BITS;
- if (off == 0) {
+ /*
+ * If BDRV_FIX_ERRORS is not set, out-of-image BAT entries were not
+ * fixed. Skip not allocated and out-of-image BAT entries.
+ */
+ if (off == 0 || off + s->cluster_size > res->image_end_offset) {
prev_off = 0;
continue;
}