Hi all! We want 64bit write-zeroes, and for this, convert all io functions to 64bit.
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). Please refer to initial cover-letter https://lists.gnu.org/archive/html/qemu-devel/2020-03/msg08723.html for more info. v3 is available at https://src.openvz.org/scm/~vsementsov/qemu.git #tag up-64bit-block-layer-v3 v3: Based on "[PATCH v2 0/9] block/io: safer inc/dec in_flight sections" Add Eric's r-bs, improve commit message with short reasoning of the whole thing, and Eric's audits (if you don't like something, I'll change or drop for next series). Add "Series:" tag to each patch. Just an idea, if it's inappropriate thing, I'll drop it. 01: add assertion that bytes > 0 02: fix indentation 06: refactor calculations in bdrv_co_write_req_prepare 09,10: simple rebase conflicts solved Also, cover more drivers by driver-updating patches and fix int flags to be BdrvRequestFlags flags. Based-on: <20200427143907.5710-1-vsement...@virtuozzo.com> Series: 64bit-block-status Vladimir Sementsov-Ogievskiy (17): block/throttle-groups: throttle_group_co_io_limits_intercept(): 64bit bytes block: use int64_t as bytes type in tracked requests block/io: use int64_t bytes parameter in bdrv_check_byte_request() block/io: use int64_t bytes in driver wrappers block/io: support int64_t bytes in bdrv_co_do_pwrite_zeroes() block/io: support int64_t bytes in bdrv_aligned_pwritev() block/io: support int64_t bytes in bdrv_co_do_copy_on_readv() block/io: support int64_t bytes in bdrv_aligned_preadv() block/io: support int64_t bytes in bdrv_co_p{read,write}v_part() block/io: support int64_t bytes in read/write wrappers block/io: use int64_t bytes in copy_range block/block-backend: convert blk io path to use int64_t parameters block: use int64_t instead of uint64_t in driver read handlers block: use int64_t instead of uint64_t in driver write handlers block: use int64_t instead of uint64_t in copy_range driver handlers block: use int64_t instead of int in driver write_zeroes handlers block: use int64_t instead of int in driver discard handlers include/block/block.h | 17 +++-- include/block/block_int.h | 67 ++++++++--------- include/block/throttle-groups.h | 2 +- include/sysemu/block-backend.h | 26 +++---- block/backup-top.c | 14 ++-- block/blkdebug.c | 12 +-- block/blklogwrites.c | 16 ++-- block/blkreplay.c | 8 +- block/blkverify.c | 10 +-- block/block-backend.c | 60 +++++++-------- block/bochs.c | 4 +- block/cloop.c | 4 +- block/commit.c | 2 +- block/copy-on-read.c | 14 ++-- block/crypto.c | 8 +- block/curl.c | 3 +- block/dmg.c | 4 +- block/file-posix.c | 46 ++++++++---- block/file-win32.c | 8 +- block/filter-compress.c | 15 ++-- block/gluster.c | 14 ++-- block/io.c | 126 +++++++++++++++++--------------- block/iscsi.c | 34 ++++++--- block/mirror.c | 8 +- block/nbd.c | 18 +++-- block/nfs.c | 12 +-- block/null.c | 18 +++-- block/nvme.c | 38 +++++++--- block/qcow.c | 16 ++-- block/qcow2.c | 34 +++++---- block/qed.c | 17 ++++- block/quorum.c | 9 ++- block/raw-format.c | 36 ++++----- block/rbd.c | 10 ++- block/sheepdog.c | 11 ++- block/throttle-groups.c | 5 +- block/throttle.c | 14 ++-- block/vdi.c | 8 +- block/vmdk.c | 14 ++-- block/vpc.c | 8 +- block/vvfat.c | 12 +-- block/vxhs.c | 8 +- tests/test-bdrv-drain.c | 16 ++-- tests/test-block-iothread.c | 19 +++-- block/trace-events | 14 ++-- 45 files changed, 488 insertions(+), 371 deletions(-) -- 2.21.0