[keep original commit message]

Reported-by: Holger Schranz <hol...@fam-schranz.de>
Signed-off-by: Eric Blake <ebl...@redhat.com>
CC: qemu-sta...@nongnu.org

---

Paolo just sent a pull request, but if I'm not too late, this should
be squashed in. If I am too late, then we can rework the commit
message to make it this is an obvious followup.

v3: preserve 4k iscsilun->block_size
v2: avoid second assertion failure
---
 block/iscsi.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/block/iscsi.c b/block/iscsi.c
index c01e955..7bb6e5d 100644
--- a/block/iscsi.c
+++ b/block/iscsi.c
@@ -1813,10 +1813,14 @@ static void iscsi_refresh_limits(BlockDriverState *bs, 
Error **errp)

     IscsiLun *iscsilun = bs->opaque;
     uint64_t max_xfer_len = iscsilun->use_16_for_rw ? 0xffffffff : 0xffff;
-    unsigned int block_size = MIN_NON_ZERO(BDRV_SECTOR_SIZE,
-                                           iscsilun->block_size);
+    unsigned int block_size = iscsilun->block_size;

-    assert(iscsilun->block_size >= BDRV_SECTOR_SIZE || bs->sg);
+    if (!block_size) {
+        assert(bs->sg);
+        block_size = BDRV_SECTOR_SIZE;
+    } else {
+        assert(block_size >= BDRV_SECTOR_SIZE);
+    }

     bs->bl.request_alignment = block_size;

-- 
2.7.4


Reply via email to