Message ID | 20220808120734.1168314-6-alexander.ivanov@virtuozzo.com |
---|---|
State | New |
Headers | show |
Series | parallels: Refactor the code of images checks and fix a bug | expand |
On 08.08.2022 14:07, Alexander Ivanov wrote: > Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com> > --- > block/parallels.c | 25 ++++++++++++++++++------- > 1 file changed, 18 insertions(+), 7 deletions(-) > > diff --git a/block/parallels.c b/block/parallels.c > index 0edbb812dd..b0982d60d0 100644 > --- a/block/parallels.c > +++ b/block/parallels.c > @@ -553,13 +553,29 @@ static void parallels_check_fragmentation(BlockDriverState *bs, > > } > > +static void parallels_collect_statistics(BlockDriverState *bs, > + BdrvCheckResult *res, > + BdrvCheckMode fix) > +{ > + BDRVParallelsState *s = bs->opaque; > + uint32_t i; > + > + res->bfi.total_clusters = s->bat_size; > + res->bfi.compressed_clusters = 0; /* compression is not supported */ > + > + for (i = 0; i < s->bat_size; i++) { > + if (bat2sect(s, i) != 0) { > + res->bfi.allocated_clusters++; > + } > + } > +} > + > static int coroutine_fn parallels_co_check(BlockDriverState *bs, > BdrvCheckResult *res, > BdrvCheckMode fix) > { > BDRVParallelsState *s = bs->opaque; > int ret; > - uint32_t i; > > qemu_co_mutex_lock(&s->lock); > > @@ -577,12 +593,7 @@ static int coroutine_fn parallels_co_check(BlockDriverState *bs, > > parallels_check_fragmentation(bs, res, fix); > > - res->bfi.total_clusters = s->bat_size; > - res->bfi.compressed_clusters = 0; /* compression is not supported */ > - > - for (i = 0; i < s->bat_size; i++) { > - res->bfi.allocated_clusters++; > - } > + parallels_collect_statistics(bs, res, fix); > > ret = 0; > out: for me fragmentation dances are pure statistics thing, this should be done in once function/patch
diff --git a/block/parallels.c b/block/parallels.c index 0edbb812dd..b0982d60d0 100644 --- a/block/parallels.c +++ b/block/parallels.c @@ -553,13 +553,29 @@ static void parallels_check_fragmentation(BlockDriverState *bs, } +static void parallels_collect_statistics(BlockDriverState *bs, + BdrvCheckResult *res, + BdrvCheckMode fix) +{ + BDRVParallelsState *s = bs->opaque; + uint32_t i; + + res->bfi.total_clusters = s->bat_size; + res->bfi.compressed_clusters = 0; /* compression is not supported */ + + for (i = 0; i < s->bat_size; i++) { + if (bat2sect(s, i) != 0) { + res->bfi.allocated_clusters++; + } + } +} + static int coroutine_fn parallels_co_check(BlockDriverState *bs, BdrvCheckResult *res, BdrvCheckMode fix) { BDRVParallelsState *s = bs->opaque; int ret; - uint32_t i; qemu_co_mutex_lock(&s->lock); @@ -577,12 +593,7 @@ static int coroutine_fn parallels_co_check(BlockDriverState *bs, parallels_check_fragmentation(bs, res, fix); - res->bfi.total_clusters = s->bat_size; - res->bfi.compressed_clusters = 0; /* compression is not supported */ - - for (i = 0; i < s->bat_size; i++) { - res->bfi.allocated_clusters++; - } + parallels_collect_statistics(bs, res, fix); ret = 0; out:
Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com> --- block/parallels.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-)