Message ID | 20230112150149.1452033-5-alexander.ivanov@virtuozzo.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | parallels: Add duplication check, repair at open, fix bugs | expand |
On 1/12/23 16:01, Alexander Ivanov wrote: > If the check is called during normal work, tracking of the check must be > present in VM logs to have some clues if something going wrong with user's > data. > > Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com> > --- > block/parallels.c | 18 +++++++++--------- > 1 file changed, 9 insertions(+), 9 deletions(-) > > diff --git a/block/parallels.c b/block/parallels.c > index 73e992875a..5c9568f197 100644 > --- a/block/parallels.c > +++ b/block/parallels.c > @@ -42,6 +42,7 @@ > #include "qemu/bswap.h" > #include "qemu/bitmap.h" > #include "qemu/memalign.h" > +#include "qemu/log-for-trace.h" > #include "migration/blocker.h" > #include "parallels.h" > > @@ -448,8 +449,8 @@ static void parallels_check_unclean(BlockDriverState *bs, > return; > } > > - fprintf(stderr, "%s image was not closed correctly\n", > - fix & BDRV_FIX_ERRORS ? "Repairing" : "ERROR"); > + qemu_log("%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 */ > @@ -476,8 +477,8 @@ static int parallels_check_outside_image(BlockDriverState *bs, > for (i = 0; i < s->bat_size; i++) { > off = bat2sect(s, i) << BDRV_SECTOR_BITS; > if (off >= size) { > - fprintf(stderr, "%s cluster %u is outside image\n", > - fix & BDRV_FIX_ERRORS ? "Repairing" : "ERROR", i); > + qemu_log("%s cluster %u is outside image\n", > + fix & BDRV_FIX_ERRORS ? "Repairing" : "ERROR", i); > res->corruptions++; > if (fix & BDRV_FIX_ERRORS) { > parallels_set_bat_entry(s, i, 0); > @@ -554,8 +555,8 @@ static int parallels_check_leak(BlockDriverState *bs, > } > > count = DIV_ROUND_UP(leak_size, s->cluster_size); > - fprintf(stderr, "%s space leaked at the end of the image %" PRId64 "\n", > - fix & BDRV_FIX_LEAKS ? "Repairing" : "ERROR", leak_size); > + qemu_log("%s space leaked at the end of the image %" PRId64 "\n", > + fix & BDRV_FIX_LEAKS ? "Repairing" : "ERROR", leak_size); > > res->leaks += count; > if (fix & BDRV_FIX_LEAKS) { > @@ -608,9 +609,8 @@ static int parallels_check_duplicate(BlockDriverState *bs, > cluster_index = host_cluster_index(s, off); > if (test_bit(cluster_index, bitmap)) { > /* this cluster duplicates another one */ > - fprintf(stderr, > - "%s duplicate offset in BAT entry %u\n", > - *fix & BDRV_FIX_ERRORS ? "Repairing" : "ERROR", i); > + qemu_log("%s duplicate offset in BAT entry %u\n", > + *fix & BDRV_FIX_ERRORS ? "Repairing" : "ERROR", i); > > res->corruptions++; > Reviewed-by: Denis V. Lunev <den@openvz.org>
diff --git a/block/parallels.c b/block/parallels.c index 73e992875a..5c9568f197 100644 --- a/block/parallels.c +++ b/block/parallels.c @@ -42,6 +42,7 @@ #include "qemu/bswap.h" #include "qemu/bitmap.h" #include "qemu/memalign.h" +#include "qemu/log-for-trace.h" #include "migration/blocker.h" #include "parallels.h" @@ -448,8 +449,8 @@ static void parallels_check_unclean(BlockDriverState *bs, return; } - fprintf(stderr, "%s image was not closed correctly\n", - fix & BDRV_FIX_ERRORS ? "Repairing" : "ERROR"); + qemu_log("%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 */ @@ -476,8 +477,8 @@ static int parallels_check_outside_image(BlockDriverState *bs, for (i = 0; i < s->bat_size; i++) { off = bat2sect(s, i) << BDRV_SECTOR_BITS; if (off >= size) { - fprintf(stderr, "%s cluster %u is outside image\n", - fix & BDRV_FIX_ERRORS ? "Repairing" : "ERROR", i); + qemu_log("%s cluster %u is outside image\n", + fix & BDRV_FIX_ERRORS ? "Repairing" : "ERROR", i); res->corruptions++; if (fix & BDRV_FIX_ERRORS) { parallels_set_bat_entry(s, i, 0); @@ -554,8 +555,8 @@ static int parallels_check_leak(BlockDriverState *bs, } count = DIV_ROUND_UP(leak_size, s->cluster_size); - fprintf(stderr, "%s space leaked at the end of the image %" PRId64 "\n", - fix & BDRV_FIX_LEAKS ? "Repairing" : "ERROR", leak_size); + qemu_log("%s space leaked at the end of the image %" PRId64 "\n", + fix & BDRV_FIX_LEAKS ? "Repairing" : "ERROR", leak_size); res->leaks += count; if (fix & BDRV_FIX_LEAKS) { @@ -608,9 +609,8 @@ static int parallels_check_duplicate(BlockDriverState *bs, cluster_index = host_cluster_index(s, off); if (test_bit(cluster_index, bitmap)) { /* this cluster duplicates another one */ - fprintf(stderr, - "%s duplicate offset in BAT entry %u\n", - *fix & BDRV_FIX_ERRORS ? "Repairing" : "ERROR", i); + qemu_log("%s duplicate offset in BAT entry %u\n", + *fix & BDRV_FIX_ERRORS ? "Repairing" : "ERROR", i); res->corruptions++;
If the check is called during normal work, tracking of the check must be present in VM logs to have some clues if something going wrong with user's data. Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com> --- block/parallels.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-)