Message ID | 20220808120734.1168314-2-alexander.ivanov@virtuozzo.com (mailing list archive) |
---|---|
State | New, archived |
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 | 29 +++++++++++++++++++---------- > 1 file changed, 19 insertions(+), 10 deletions(-) > > diff --git a/block/parallels.c b/block/parallels.c > index a229c06f25..108aa907b8 100644 > --- a/block/parallels.c > +++ b/block/parallels.c > @@ -413,6 +413,23 @@ static coroutine_fn int parallels_co_readv(BlockDriverState *bs, > return ret; > } > > +static void parallels_check_unclean(BlockDriverState *bs, > + BdrvCheckResult *res, > + BdrvCheckMode fix) > +{ > + BDRVParallelsState *s = bs->opaque; > + > + if (s->header_unclean) { I'd better revert this condition if we have moved code to helper. > + fprintf(stderr, "%s image was not closed correctly\n", > + fix & BDRV_FIX_ERRORS ? "Repairing" : "ERROR"); > + res->corruptions++; > + if (fix & BDRV_FIX_ERRORS) { > + /* parallels_close will do the job right */ > + res->corruptions_fixed++; > + s->header_unclean = false; > + } > + } > +} > > static int coroutine_fn parallels_co_check(BlockDriverState *bs, > BdrvCheckResult *res, > @@ -431,16 +448,8 @@ static int coroutine_fn parallels_co_check(BlockDriverState *bs, > } > > qemu_co_mutex_lock(&s->lock); > - if (s->header_unclean) { > - fprintf(stderr, "%s image was not closed correctly\n", > - fix & BDRV_FIX_ERRORS ? "Repairing" : "ERROR"); > - res->corruptions++; > - if (fix & BDRV_FIX_ERRORS) { > - /* parallels_close will do the job right */ > - res->corruptions_fixed++; > - s->header_unclean = false; > - } > - } > + > + parallels_check_unclean(bs, res, fix); > > res->bfi.total_clusters = s->bat_size; > res->bfi.compressed_clusters = 0; /* compression is not supported */
diff --git a/block/parallels.c b/block/parallels.c index a229c06f25..108aa907b8 100644 --- a/block/parallels.c +++ b/block/parallels.c @@ -413,6 +413,23 @@ static coroutine_fn int parallels_co_readv(BlockDriverState *bs, return ret; } +static void parallels_check_unclean(BlockDriverState *bs, + BdrvCheckResult *res, + BdrvCheckMode fix) +{ + BDRVParallelsState *s = bs->opaque; + + if (s->header_unclean) { + fprintf(stderr, "%s image was not closed correctly\n", + fix & BDRV_FIX_ERRORS ? "Repairing" : "ERROR"); + res->corruptions++; + if (fix & BDRV_FIX_ERRORS) { + /* parallels_close will do the job right */ + res->corruptions_fixed++; + s->header_unclean = false; + } + } +} static int coroutine_fn parallels_co_check(BlockDriverState *bs, BdrvCheckResult *res, @@ -431,16 +448,8 @@ static int coroutine_fn parallels_co_check(BlockDriverState *bs, } qemu_co_mutex_lock(&s->lock); - if (s->header_unclean) { - fprintf(stderr, "%s image was not closed correctly\n", - fix & BDRV_FIX_ERRORS ? "Repairing" : "ERROR"); - res->corruptions++; - if (fix & BDRV_FIX_ERRORS) { - /* parallels_close will do the job right */ - res->corruptions_fixed++; - s->header_unclean = false; - } - } + + parallels_check_unclean(bs, res, fix); res->bfi.total_clusters = s->bat_size; res->bfi.compressed_clusters = 0; /* compression is not supported */
Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com> --- block/parallels.c | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-)