Message ID | 20230701100759.261007-4-alexander.ivanov@virtuozzo.com |
---|---|
State | New |
Headers | show |
Series | parallels: Add duplication check, repair at open, fix bugs | expand |
On 7/1/23 12:07, Alexander Ivanov wrote: > In the on of the next patches we need to repair leaks without changing > leaks and leaks_fixed info in res. Also we don't want to print any warning > about leaks. Add "explicit" argument to skip info changing if the argument > is false. > > Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com> > --- > block/parallels.c | 19 ++++++++++++------- > 1 file changed, 12 insertions(+), 7 deletions(-) > > diff --git a/block/parallels.c b/block/parallels.c > index 40a26908db..3cff25e3a4 100644 > --- a/block/parallels.c > +++ b/block/parallels.c > @@ -484,7 +484,7 @@ parallels_check_outside_image(BlockDriverState *bs, BdrvCheckResult *res, > > static int coroutine_fn GRAPH_RDLOCK > parallels_check_leak(BlockDriverState *bs, BdrvCheckResult *res, > - BdrvCheckMode fix) > + BdrvCheckMode fix, bool explicit) > { > BDRVParallelsState *s = bs->opaque; > int64_t size; > @@ -499,10 +499,13 @@ parallels_check_leak(BlockDriverState *bs, BdrvCheckResult *res, > if (size > res->image_end_offset) { > int64_t count; > 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); > - res->leaks += count; > + if (explicit) { > + fprintf(stderr, > + "%s space leaked at the end of the image %" PRId64 "\n", > + fix & BDRV_FIX_LEAKS ? "Repairing" : "ERROR", > + size - res->image_end_offset); > + res->leaks += count; > + } > if (fix & BDRV_FIX_LEAKS) { > Error *local_err = NULL; > > @@ -517,7 +520,9 @@ parallels_check_leak(BlockDriverState *bs, BdrvCheckResult *res, > res->check_errors++; > return ret; > } > - res->leaks_fixed += count; > + if (explicit) { > + res->leaks_fixed += count; > + } > } > } > > @@ -570,7 +575,7 @@ parallels_co_check(BlockDriverState *bs, BdrvCheckResult *res, > return ret; > } > > - ret = parallels_check_leak(bs, res, fix); > + ret = parallels_check_leak(bs, res, fix, true); > if (ret < 0) { > return ret; > } Reviewed-by: Denis V. Lunev <den@openvz.org>
diff --git a/block/parallels.c b/block/parallels.c index 40a26908db..3cff25e3a4 100644 --- a/block/parallels.c +++ b/block/parallels.c @@ -484,7 +484,7 @@ parallels_check_outside_image(BlockDriverState *bs, BdrvCheckResult *res, static int coroutine_fn GRAPH_RDLOCK parallels_check_leak(BlockDriverState *bs, BdrvCheckResult *res, - BdrvCheckMode fix) + BdrvCheckMode fix, bool explicit) { BDRVParallelsState *s = bs->opaque; int64_t size; @@ -499,10 +499,13 @@ parallels_check_leak(BlockDriverState *bs, BdrvCheckResult *res, if (size > res->image_end_offset) { int64_t count; 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); - res->leaks += count; + if (explicit) { + fprintf(stderr, + "%s space leaked at the end of the image %" PRId64 "\n", + fix & BDRV_FIX_LEAKS ? "Repairing" : "ERROR", + size - res->image_end_offset); + res->leaks += count; + } if (fix & BDRV_FIX_LEAKS) { Error *local_err = NULL; @@ -517,7 +520,9 @@ parallels_check_leak(BlockDriverState *bs, BdrvCheckResult *res, res->check_errors++; return ret; } - res->leaks_fixed += count; + if (explicit) { + res->leaks_fixed += count; + } } } @@ -570,7 +575,7 @@ parallels_co_check(BlockDriverState *bs, BdrvCheckResult *res, return ret; } - ret = parallels_check_leak(bs, res, fix); + ret = parallels_check_leak(bs, res, fix, true); if (ret < 0) { return ret; }
In the on of the next patches we need to repair leaks without changing leaks and leaks_fixed info in res. Also we don't want to print any warning about leaks. Add "explicit" argument to skip info changing if the argument is false. Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com> --- block/parallels.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-)