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>
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;
}