@@ -2613,13 +2613,13 @@ int64_t qcow2_refcount_metadata_size(int64_t clusters, size_t cluster_size,
* Returns: Total number of bytes required for the fully allocated image
* (including metadata).
*/
-static int64_t qcow2_calc_prealloc_size(int64_t total_size,
- size_t cluster_size,
- int refcount_order)
+static uint64_t qcow2_calc_prealloc_size(uint64_t total_size,
+ size_t cluster_size,
+ int refcount_order)
{
- int64_t meta_size = 0;
+ uint64_t meta_size = 0;
uint64_t nl1e, nl2e;
- int64_t aligned_total_size = align_offset(total_size, cluster_size);
+ uint64_t aligned_total_size = align_offset(total_size, cluster_size);
/* header: 1 cluster */
meta_size += cluster_size;
@@ -2729,7 +2729,7 @@ static int qcow2_create2(const char *filename, int64_t total_size,
int ret;
if (prealloc == PREALLOC_MODE_FULL || prealloc == PREALLOC_MODE_FALLOC) {
- int64_t prealloc_size =
+ uint64_t prealloc_size =
qcow2_calc_prealloc_size(total_size, cluster_size, refcount_order);
qemu_opt_set_number(opts, BLOCK_OPT_SIZE, prealloc_size, &error_abort);
qemu_opt_set(opts, BLOCK_OPT_PREALLOC, PreallocMode_lookup[prealloc],
Change parameter @total_size and return value to uint64_t. Callers mix uint64_t and int64_t. Thus, the commit reduces, but does not eliminate implicit conversions. qcow2_create2() passes a (presumably non-negative) int64_t argument, then passes the result through a local variable to qemu_opt_set_number(). Change the local variable to uint64_t to avoid pointless conversions. qcow2_measure() passes a uint64_t argument, then assigns the result to int64_t (which the next commit will change to uint64_t). Signed-off-by: Markus Armbruster <armbru@redhat.com> --- block/qcow2.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)