SOCKET queue cmd PDUs directly in waitpdu queue

A storage might sent an R2T response for a WRITE command while
we still sending out the WRITE command PDU. This is especially
the case when the command PDU carries immediata data.

Without this patch the R2T response will get lost as
the cmdpdu for the R2T cannot be found in iscsi_process_pdu()
leading to a deadlock.

Signed-off-by: Peter Lieven <pl@kamp.de>
This commit is contained in:
Peter Lieven
2012-12-03 11:01:30 +01:00
parent 39f42dbd2f
commit dbe9a1e73a
4 changed files with 29 additions and 12 deletions

View File

@@ -103,6 +103,7 @@ struct iscsi_context {
void *connect_data;
struct iscsi_pdu *outqueue;
struct iscsi_pdu *outqueue_current;
struct iscsi_pdu *waitpdu;
struct iscsi_in_pdu *incoming;