From 700d363a8812218e49d9c137d2f9e272f4ea250a Mon Sep 17 00:00:00 2001 From: Ronnie Sahlberg Date: Tue, 27 Nov 2012 20:26:13 -0800 Subject: [PATCH] Create a wrapper function for when we add pdus to the out queue so that we can add them so that they are send in increasing itt order. --- include/iscsi-private.h | 3 +++ lib/connect.c | 4 ++-- lib/socket.c | 8 +++++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/include/iscsi-private.h b/include/iscsi-private.h index 48b757a..93335f4 100644 --- a/include/iscsi-private.h +++ b/include/iscsi-private.h @@ -322,6 +322,9 @@ void iscsi_decrement_iface_rr(void); void iscsi_log_message(struct iscsi_context *iscsi, int level, const char *format, ...); +void +iscsi_add_to_outqueue(struct iscsi_context *iscsi, struct iscsi_pdu *pdu); + #ifdef __cplusplus } #endif diff --git a/lib/connect.c b/lib/connect.c index 1d44ebb..4a7f878 100644 --- a/lib/connect.c +++ b/lib/connect.c @@ -289,7 +289,7 @@ try_again: iscsi->statsn++; pdu->written = 0; - SLIST_ADD_END(&iscsi->outqueue, pdu); + iscsi_add_to_outqueue(iscsi, pdu); } while (old_iscsi->outqueue) { @@ -319,7 +319,7 @@ try_again: iscsi->statsn++; pdu->written = 0; - SLIST_ADD_END(&iscsi->outqueue, pdu); + iscsi_add_to_outqueue(iscsi, pdu); } if (dup2(iscsi->fd, old_iscsi->fd) == -1) { diff --git a/lib/socket.c b/lib/socket.c index f7cdfd6..e1a417a 100644 --- a/lib/socket.c +++ b/lib/socket.c @@ -48,6 +48,12 @@ static uint32_t iface_rr = 0; +void +iscsi_add_to_outqueue(struct iscsi_context *iscsi, struct iscsi_pdu *pdu) +{ + SLIST_ADD_END(&iscsi->outqueue, pdu); +} + void iscsi_decrement_iface_rr() { iface_rr--; } @@ -596,7 +602,7 @@ iscsi_queue_pdu(struct iscsi_context *iscsi, struct iscsi_pdu *pdu) pdu->outdata.data[ISCSI_RAW_HEADER_SIZE+0] = (crc) &0xff; } - SLIST_ADD_END(&iscsi->outqueue, pdu); + iscsi_add_to_outqueue(iscsi, pdu); return 0; }