Received: from eggs.gnu.org ([2001:4830:134:3::10]:56801) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XigTO-0008Nd-Ix for qemu-devel@nongnu.org; Mon, 27 Oct 2014 05:20:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XigTD-0005DB-IP for qemu-devel@nongnu.org; Mon, 27 Oct 2014 05:20:22 -0400 Received: from mx-v6.kamp.de ([2a02:248:0:51::16]:59239 helo=mx01.kamp.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XigTD-0005Ca-8n for qemu-devel@nongnu.org; Mon, 27 Oct 2014 05:20:11 -0400 From: Peter Lieven Date: Mon, 27 Oct 2014 10:18:42 +0100 Message-Id: <1414401528-21884-1-git-send-email-pl@kamp.de> Subject: [Qemu-devel] [PATCHv6 0/6] introduce max_transfer_length List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com, famz@redhat.com, benoit@irqsave.net, ronniesahlberg@gmail.com, Peter Lieven , armbru@redhat.com, mreitz@redhat.com, stefanha@redhat.com 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. v5->v6: - fix parentheses in Patch 1 [Max] - rename helper function in Patch 3 [Max] - cap the limits to highest power of 2 fitting in INT_MAX [Max] - removed full stops in error messages in Patch 6 [Max] 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: use sector_limits_lun2qemu 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