BlockLimits is currently an ugly mix of byte limits vs. sector limits. Unify it. Fix some bugs I found in bdrv_aligned_preadv() while at it.
Prequisite: none (built on Kevin's block branch, which is currently merged into master) Also available as a tag at: git fetch git://repo.or.cz/qemu/ericb.git nbd-limits-v3 Since v2: - address review comments, add R-b on uncontested patches - split a couple of patches that did too much at once - add a couple of new patches at the end for things I noticed during cleanups - see individual patches for more details 001/22:[----] [--] 'block: Tighter assertions on bdrv_aligned_pwritev()' 002/22:[----] [--] 'block: Document supported flags during bdrv_aligned_preadv()' 003/22:[----] [--] 'block: Fix harmless off-by-one in bdrv_aligned_preadv()' 004/22:[0001] [FC] 'nbd: Allow larger requests' 005/22:[----] [--] 'nbd: Advertise realistic limits to block layer' 006/22:[----] [--] 'iscsi: Advertise realistic limits to block layer' 007/22:[down] 'scsi: Advertise limits by blocksize, not 512' 008/22:[----] [-C] 'block: Give nonzero result to blk_get_max_transfer_length()' 009/22:[0010] [FC] 'blkdebug: Set request_alignment during .bdrv_refresh_limits()' 010/22:[----] [--] 'iscsi: Set request_alignment during .bdrv_refresh_limits()' 011/22:[----] [--] 'qcow2: Set request_alignment during .bdrv_refresh_limits()' 012/22:[----] [--] 'raw-win32: Set request_alignment during .bdrv_refresh_limits()' 013/22:[----] [--] 'block: Set request_alignment during .bdrv_refresh_limits()' 014/22:[----] [--] 'block: Set default request_alignment during bdrv_refresh_limits()' 015/22:[0017] [FC] 'block: Switch transfer length bounds to byte-based' 016/22:[down] 'block: Wording tweaks to write zeroes limits' 017/22:[0007] [FC] 'block: Switch discard length bounds to byte-based' 018/22:[down] 'block: Drop raw_refresh_limits()' 019/22:[0012] [FC] 'block: Split bdrv_merge_limits() from bdrv_refresh_limits()' 020/22:[0006] [FC] 'block: Move request_alignment into BlockLimit' 021/22:[down] 'block: Fix error message style' 022/22:[down] 'block: Use bool as appropriate for BDS members' Since v1: - drop things already done in Kevin's work - rebase - split out lots of cleanup work to bdrv_refresh_limits() so that qemu-iotests does not gain any problems on 77 Eric Blake (22): block: Tighter assertions on bdrv_aligned_pwritev() block: Document supported flags during bdrv_aligned_preadv() block: Fix harmless off-by-one in bdrv_aligned_preadv() nbd: Allow larger requests nbd: Advertise realistic limits to block layer iscsi: Advertise realistic limits to block layer scsi: Advertise limits by blocksize, not 512 block: Give nonzero result to blk_get_max_transfer_length() blkdebug: Set request_alignment during .bdrv_refresh_limits() iscsi: Set request_alignment during .bdrv_refresh_limits() qcow2: Set request_alignment during .bdrv_refresh_limits() raw-win32: Set request_alignment during .bdrv_refresh_limits() block: Set request_alignment during .bdrv_refresh_limits() block: Set default request_alignment during bdrv_refresh_limits() block: Switch transfer length bounds to byte-based block: Wording tweaks to write zeroes limits block: Switch discard length bounds to byte-based block: Drop raw_refresh_limits() block: Split bdrv_merge_limits() from bdrv_refresh_limits() block: Move request_alignment into BlockLimit block: Fix error message style block: Use bool as appropriate for BDS members qapi/block-core.json | 3 +- include/block/block.h | 8 ++-- include/block/block_int.h | 57 +++++++++++++++--------- include/block/nbd.h | 2 + include/sysemu/block-backend.h | 2 +- block.c | 25 ++++++----- block/blkdebug.c | 19 ++++++-- block/block-backend.c | 9 ++-- block/bochs.c | 9 +++- block/cloop.c | 9 +++- block/crypto.c | 4 +- block/dmg.c | 9 +++- block/io.c | 98 +++++++++++++++++++++++------------------- block/iscsi.c | 45 ++++++++++--------- block/nbd-client.c | 4 -- block/nbd.c | 4 +- block/qcow.c | 2 +- block/qcow2.c | 9 ++-- block/raw-posix.c | 24 +++++------ block/raw-win32.c | 10 ++--- block/raw_bsd.c | 8 +--- block/vvfat.c | 11 +++-- hw/block/virtio-blk.c | 10 ++--- hw/scsi/scsi-generic.c | 15 ++++--- qemu-img.c | 9 ++-- 25 files changed, 231 insertions(+), 174 deletions(-) -- 2.5.5