]> git.proxmox.com Git - mirror_qemu.git/commit - block/trace-events
block/io: use int64_t bytes in copy_range
authorVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Fri, 11 Dec 2020 18:39:34 +0000 (21:39 +0300)
committerEric Blake <eblake@redhat.com>
Wed, 3 Feb 2021 14:17:12 +0000 (08:17 -0600)
commita5215b8fdf1f8b284b4e5ba4895a4b091b503444
tree8c3478c0c9cee42ef3e3c67098067b5cc9093fc5
parente9e52efdc53bf7746bdb3c21f1a9ee5da298c6a2
block/io: use int64_t bytes in copy_range

We are generally moving to int64_t for both offset and bytes parameters
on all io paths.

Main motivation is realization of 64-bit write_zeroes operation for
fast zeroing large disk chunks, up to the whole disk.

We chose signed type, to be consistent with off_t (which is signed) and
with possibility for signed return type (where negative value means
error).

So, convert now copy_range parameters which are already 64bit to signed
type.

It's safe as we don't work with requests overflowing BDRV_MAX_LENGTH
(which is less than INT64_MAX), and do check the requests in
bdrv_co_copy_range_internal() (by bdrv_check_request32(), which calls
bdrv_check_request()).

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20201211183934.169161-17-vsementsov@virtuozzo.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
block/io.c
block/trace-events
include/block/block.h
include/block/block_int.h