From 5d55d32adbe7d40b0f2a91d0ef01f10cb763f216 Mon Sep 17 00:00:00 2001 From: Peter Lieven Date: Fri, 13 Jun 2014 12:59:17 +0200 Subject: [PATCH] socket: do not stop sending for immediate PDUs Signed-off-by: Peter Lieven --- lib/socket.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/socket.c b/lib/socket.c index 4b1c569..e9e499f 100644 --- a/lib/socket.c +++ b/lib/socket.c @@ -611,8 +611,9 @@ iscsi_write_to_socket(struct iscsi_context *iscsi) while (iscsi->outqueue != NULL || iscsi->outqueue_current != NULL) { if (iscsi->outqueue_current == NULL) { - if (iscsi_serial32_compare(iscsi->outqueue->cmdsn, iscsi->maxcmdsn) > 0) { - /* stop sending. maxcmdsn is reached */ + if (iscsi_serial32_compare(iscsi->outqueue->cmdsn, iscsi->maxcmdsn) > 0 + && !(iscsi->outqueue->outdata.data[0] & ISCSI_PDU_IMMEDIATE)) { + /* stop sending for non-immediate PDUs. maxcmdsn is reached */ return 0; } /* pop first element of the outqueue */