diff --git a/lib/nop.c b/lib/nop.c index f828822..f4fec90 100644 --- a/lib/nop.c +++ b/lib/nop.c @@ -21,6 +21,7 @@ #endif #include +#include #include "iscsi.h" #include "iscsi-private.h" @@ -146,11 +147,14 @@ iscsi_process_nop_out_reply(struct iscsi_context *iscsi, struct iscsi_pdu *pdu, if (iscsi->waitpdu->cmdsn == iscsi->min_cmdsn_waiting) { ISCSI_LOG(iscsi, 2, "Oldest element in waitqueue is unchanged since last NOP-In (iscsi->min_cmdsn_waiting %08x)", iscsi->min_cmdsn_waiting); + if (getenv("LIBISCSI_IGNORE_NOP_OUT_ON_STUCK_WAITPDU_QUEUE") == NULL) { + iscsi->nops_in_flight = 0; + } + } else { + iscsi->nops_in_flight = 0; } iscsi->min_cmdsn_waiting = iscsi->waitpdu->cmdsn; - iscsi->nops_in_flight = 0; - if (pdu->callback == NULL) { return 0; }