block/io: support int64_t bytes in read/write wrappers
commite9e52efdc53bf7746bdb3c21f1a9ee5da298c6a2
authorVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Fri, 11 Dec 2020 18:39:33 +0000 (11 21:39 +0300)
committerEric Blake <eblake@redhat.com>
Wed, 3 Feb 2021 14:17:12 +0000 (3 08:17 -0600)
treef6c1747591b07eb37000d5228088c5b02ce21507
parent37e9403ea87a473f96744af7583dbb3eaef8d0f6
block/io: support int64_t bytes in read/write wrappers

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).

Now, since bdrv_co_preadv_part() and bdrv_co_pwritev_part() have been
updated, update all their wrappers.

For all of them type of 'bytes' is widening, so callers are safe. We
have update request_fn in blkverify.c simultaneously. Still it's just a
pointer to one of bdrv_co_pwritev() or bdrv_co_preadv(), and type is
widening for callers of the request_fn anyway.

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