qemu-img: Report convert errors by bytes, not sectors

Various qemu-img commands are inconsistent on whether they report
status/errors in terms of bytes or sector offsets.  The latter is
confusing (especially as more places move to 4k block sizes), so let's
switch everything to just use bytes everywhere.  One iotest is
impacted.

Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20200402135717.476398-1-eblake@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
Eric Blake 2020-04-02 08:57:17 -05:00 committed by Max Reitz
parent 80f5c01183
commit 39f77cb662
2 changed files with 5 additions and 5 deletions
qemu-img.c
tests/qemu-iotests

View File

@ -1924,8 +1924,8 @@ retry:
if (status == BLK_DATA && !copy_range) { if (status == BLK_DATA && !copy_range) {
ret = convert_co_read(s, sector_num, n, buf); ret = convert_co_read(s, sector_num, n, buf);
if (ret < 0) { if (ret < 0) {
error_report("error while reading sector %" PRId64 error_report("error while reading at byte %lld: %s",
": %s", sector_num, strerror(-ret)); sector_num * BDRV_SECTOR_SIZE, strerror(-ret));
s->ret = ret; s->ret = ret;
} }
} else if (!s->min_sparse && status == BLK_ZERO) { } else if (!s->min_sparse && status == BLK_ZERO) {
@ -1953,8 +1953,8 @@ retry:
ret = convert_co_write(s, sector_num, n, buf, status); ret = convert_co_write(s, sector_num, n, buf, status);
} }
if (ret < 0) { if (ret < 0) {
error_report("error while writing sector %" PRId64 error_report("error while writing at byte %lld: %s",
": %s", sector_num, strerror(-ret)); sector_num * BDRV_SECTOR_SIZE, strerror(-ret));
s->ret = ret; s->ret = ret;
} }
} }

View File

@ -33,7 +33,7 @@ Convert to compressed target with data file:
Formatting 'TEST_DIR/t.IMGFMT.src', fmt=IMGFMT size=67108864 Formatting 'TEST_DIR/t.IMGFMT.src', fmt=IMGFMT size=67108864
wrote 1048576/1048576 bytes at offset 0 wrote 1048576/1048576 bytes at offset 0
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) 1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-img: error while writing sector 0: Operation not supported qemu-img: error while writing at byte 0: Operation not supported
Convert uncompressed, then write compressed data manually: Convert uncompressed, then write compressed data manually:
Images are identical. Images are identical.