[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 17/23] qemu-img: Change check_empty_sectors() to
From: |
Eric Blake |
Subject: |
[Qemu-devel] [PATCH v3 17/23] qemu-img: Change check_empty_sectors() to byte-based |
Date: |
Thu, 13 Jul 2017 10:47:05 -0500 |
Continue on the quest to make more things byte-based instead of
sector-based.
Signed-off-by: Eric Blake <address@hidden>
---
v3: new patch
---
qemu-img.c | 27 +++++++++++++++------------
1 file changed, 15 insertions(+), 12 deletions(-)
diff --git a/qemu-img.c b/qemu-img.c
index c0fd773..baf20db 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -1196,30 +1196,29 @@ static int64_t sectors_to_bytes(int64_t sectors)
* an error message.
*
* @param blk: BlockBackend for the image
- * @param sect_num: Number of first sector to check
- * @param sect_count: Number of sectors to check
+ * @param offset: Starting offset to check
+ * @param bytes: Number of bytes to check
* @param filename: Name of disk file we are checking (logging purpose)
* @param buffer: Allocated buffer for storing read data
* @param quiet: Flag for quiet mode
*/
-static int check_empty_sectors(BlockBackend *blk, int64_t sect_num,
- int sect_count, const char *filename,
+static int check_empty_sectors(BlockBackend *blk, int64_t offset,
+ int64_t bytes, const char *filename,
uint8_t *buffer, bool quiet)
{
int ret = 0;
int64_t idx;
- ret = blk_pread(blk, sect_num << BDRV_SECTOR_BITS, buffer,
- sect_count << BDRV_SECTOR_BITS);
+ ret = blk_pread(blk, offset, buffer, bytes);
if (ret < 0) {
error_report("Error while reading offset %" PRId64 " of %s: %s",
- sectors_to_bytes(sect_num), filename, strerror(-ret));
+ offset, filename, strerror(-ret));
return 4;
}
- idx = find_nonzero(buffer, sect_count * BDRV_SECTOR_SIZE);
+ idx = find_nonzero(buffer, bytes);
if (idx >= 0) {
qprintf(quiet, "Content mismatch at offset %" PRId64 "!\n",
- sectors_to_bytes(sect_num) + idx);
+ offset + idx);
return 1;
}
@@ -1462,10 +1461,12 @@ static int img_compare(int argc, char **argv)
} else {
nb_sectors = MIN(nb_sectors, IO_BUF_SIZE >> BDRV_SECTOR_BITS);
if (allocated1) {
- ret = check_empty_sectors(blk1, sector_num, nb_sectors,
+ ret = check_empty_sectors(blk1, sector_num * BDRV_SECTOR_SIZE,
+ nb_sectors * BDRV_SECTOR_SIZE,
filename1, buf1, quiet);
} else {
- ret = check_empty_sectors(blk2, sector_num, nb_sectors,
+ ret = check_empty_sectors(blk2, sector_num * BDRV_SECTOR_SIZE,
+ nb_sectors * BDRV_SECTOR_SIZE,
filename2, buf1, quiet);
}
if (ret) {
@@ -1510,7 +1511,9 @@ static int img_compare(int argc, char **argv)
nb_sectors = count >> BDRV_SECTOR_BITS;
if (ret & BDRV_BLOCK_ALLOCATED && !(ret & BDRV_BLOCK_ZERO)) {
nb_sectors = MIN(nb_sectors, IO_BUF_SIZE >> BDRV_SECTOR_BITS);
- ret = check_empty_sectors(blk_over, sector_num, nb_sectors,
+ ret = check_empty_sectors(blk_over,
+ sector_num * BDRV_SECTOR_SIZE,
+ nb_sectors * BDRV_SECTOR_SIZE,
filename_over, buf1, quiet);
if (ret) {
goto out;
--
2.9.4
- [Qemu-devel] [PATCH v3 07/23] block: Convert bdrv_get_block_status() to bytes, (continued)
- [Qemu-devel] [PATCH v3 07/23] block: Convert bdrv_get_block_status() to bytes, Eric Blake, 2017/07/13
- [Qemu-devel] [PATCH v3 09/23] block: Switch BdrvCoGetBlockStatusData to byte-based, Eric Blake, 2017/07/13
- [Qemu-devel] [PATCH v3 10/23] block: Switch bdrv_common_block_status_above() to byte-based, Eric Blake, 2017/07/13
- [Qemu-devel] [PATCH v3 11/23] block: Switch bdrv_co_get_block_status_above() to byte-based, Eric Blake, 2017/07/13
- [Qemu-devel] [PATCH v3 08/23] block: Switch bdrv_co_get_block_status() to byte-based, Eric Blake, 2017/07/13
- [Qemu-devel] [PATCH v3 12/23] block: Convert bdrv_get_block_status_above() to bytes, Eric Blake, 2017/07/13
- [Qemu-devel] [PATCH v3 13/23] qemu-img: Simplify logic in img_compare(), Eric Blake, 2017/07/13
- [Qemu-devel] [PATCH v3 14/23] qemu-img: Speed up compare on pre-allocated larger file, Eric Blake, 2017/07/13
- [Qemu-devel] [PATCH v3 15/23] qemu-img: Add find_nonzero(), Eric Blake, 2017/07/13
- [Qemu-devel] [PATCH v3 16/23] qemu-img: Drop redundant error message in compare, Eric Blake, 2017/07/13
- [Qemu-devel] [PATCH v3 17/23] qemu-img: Change check_empty_sectors() to byte-based,
Eric Blake <=
- [Qemu-devel] [PATCH v3 18/23] qemu-img: Change compare_sectors() to be byte-based, Eric Blake, 2017/07/13
- [Qemu-devel] [PATCH v3 19/23] qemu-img: Change img_rebase() to be byte-based, Eric Blake, 2017/07/13
- [Qemu-devel] [PATCH v3 20/23] qemu-img: Change img_compare() to be byte-based, Eric Blake, 2017/07/13
- [Qemu-devel] [PATCH v3 22/23] block: Relax bdrv_aligned_preadv() assertion, Eric Blake, 2017/07/13
- [Qemu-devel] [PATCH v3 21/23] block: Align block status requests, Eric Blake, 2017/07/13
- [Qemu-devel] [PATCH v3 23/23] qemu-io: Relax 'alloc' now that block-status doesn't assert, Eric Blake, 2017/07/13