This series adds the basics for introducing a maximum transfer length to the block layer. Its main purpose is currently avoiding that a multiwrite_merge exceeds the max_xfer_len of an attached iSCSI LUN. This is a required bug fix.
Splitting up requests according to the max_transfer_length will follow in a later series. v4->v5: - Added check for (a != 0 instead of !!a) [Max] and some comments [Eric] - Correctly limited max_transfer_length to INT_MAX in Patch 3 [Max] - Added Patch 5 and Patch 6. v3->v4: introduce MIN_NON_ZERO to correctly calculate minimum of 2 limits. v2->v3: remove Patch 2 completely [Paolo] v1->v2: do not throw errors but generate trace events in Patch 2 [Paolo] Peter Lieven (6): util: introduce MIN_NON_ZERO BlockLimits: introduce max_transfer_length block/iscsi: set max_transfer_length block: avoid creating oversized writes in multiwrite_merge block/iscsi: limit to INT_MAX throughout iscsi_refresh_limits block/iscsi: check for oversized requests block.c | 9 +++++++++ block/iscsi.c | 49 ++++++++++++++++++++++++++++++++++----------- include/block/block_int.h | 3 +++ include/qemu/osdep.h | 6 ++++++ 4 files changed, 55 insertions(+), 12 deletions(-) -- 1.7.9.5