summaryrefslogtreecommitdiffstats
path: root/include/block
diff options
context:
space:
mode:
authorVladimir Sementsov-Ogievskiy2020-12-11 19:39:30 +0100
committerEric Blake2021-02-03 15:17:11 +0100
commit9df5afbdd1ae0d8d5c3fb23e8c219ce7ffddd8f6 (patch)
tree513543ee42c4f0127a6e4ea9d28f722704fc7fe7 /include/block
parentblock/io: support int64_t bytes in bdrv_aligned_pwritev() (diff)
downloadqemu-9df5afbdd1ae0d8d5c3fb23e8c219ce7ffddd8f6.tar.gz
qemu-9df5afbdd1ae0d8d5c3fb23e8c219ce7ffddd8f6.tar.xz
qemu-9df5afbdd1ae0d8d5c3fb23e8c219ce7ffddd8f6.zip
block/io: support int64_t bytes in bdrv_co_do_copy_on_readv()
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, prepare bdrv_co_do_copy_on_readv() now. 'bytes' type widening, so callers are safe. Look at the function itself: bytes, skip_bytes and progress become int64_t. bdrv_round_to_clusters() is OK, cluster_bytes now may be large. trace_bdrv_co_do_copy_on_readv() is OK looping through cluster_bytes is still OK. pnum is still capped to max_transfer, and to MAX_BOUNCE_BUFFER when we are going to do COR operation. Therefor calculations in qemu_iovec_from_buf() and bdrv_driver_preadv() should not change. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Message-Id: <20201211183934.169161-13-vsementsov@virtuozzo.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Eric Blake <eblake@redhat.com>
Diffstat (limited to 'include/block')
0 files changed, 0 insertions, 0 deletions