From: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> We are going to use it in more places, calculating "s->tracks << BDRV_SECTOR_BITS" doesn't look good.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Message-Id: <20210224104707.88430-4-vsement...@virtuozzo.com> Reviewed-by: Denis V. Lunev <d...@openvz.org> Signed-off-by: Kevin Wolf <kw...@redhat.com> --- block/parallels.h | 1 + block/parallels.c | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/block/parallels.h b/block/parallels.h index 5aa101cfc8..9a9209e320 100644 --- a/block/parallels.h +++ b/block/parallels.h @@ -79,6 +79,7 @@ typedef struct BDRVParallelsState { ParallelsPreallocMode prealloc_mode; unsigned int tracks; + unsigned int cluster_size; unsigned int off_multiplier; Error *migration_blocker; diff --git a/block/parallels.c b/block/parallels.c index 3c22dfdc9d..9594d84978 100644 --- a/block/parallels.c +++ b/block/parallels.c @@ -421,7 +421,6 @@ static int coroutine_fn parallels_co_check(BlockDriverState *bs, int ret; uint32_t i; bool flush_bat = false; - int cluster_size = s->tracks << BDRV_SECTOR_BITS; size = bdrv_getlength(bs->file->bs); if (size < 0) { @@ -472,7 +471,7 @@ static int coroutine_fn parallels_co_check(BlockDriverState *bs, high_off = off; } - if (prev_off != 0 && (prev_off + cluster_size) != off) { + if (prev_off != 0 && (prev_off + s->cluster_size) != off) { res->bfi.fragmented_clusters++; } prev_off = off; @@ -487,10 +486,10 @@ static int coroutine_fn parallels_co_check(BlockDriverState *bs, } } - res->image_end_offset = high_off + cluster_size; + res->image_end_offset = high_off + s->cluster_size; if (size > res->image_end_offset) { int64_t count; - count = DIV_ROUND_UP(size - res->image_end_offset, cluster_size); + count = DIV_ROUND_UP(size - res->image_end_offset, s->cluster_size); fprintf(stderr, "%s space leaked at the end of the image %" PRId64 "\n", fix & BDRV_FIX_LEAKS ? "Repairing" : "ERROR", size - res->image_end_offset); @@ -771,6 +770,7 @@ static int parallels_open(BlockDriverState *bs, QDict *options, int flags, ret = -EFBIG; goto fail; } + s->cluster_size = s->tracks << BDRV_SECTOR_BITS; s->bat_size = le32_to_cpu(ph.bat_entries); if (s->bat_size > INT_MAX / sizeof(uint32_t)) { -- 2.29.2