diff --git a/include/iscsi-private.h b/include/iscsi-private.h index 1d0f263..77425b0 100644 --- a/include/iscsi-private.h +++ b/include/iscsi-private.h @@ -233,8 +233,6 @@ struct iscsi_pdu { #define ISCSI_PDU_DROP_ON_RECONNECT 0x00000004 /* stop sending after this PDU has been sent */ #define ISCSI_PDU_CORK_WHEN_SENT 0x00000008 -/* Fail the command with error on reconnect */ -#define ISCSI_PDU_ERROR_ON_RECONNECT 0x00000016 uint32_t flags; diff --git a/lib/connect.c b/lib/connect.c index a1abbf6..b7adb25 100644 --- a/lib/connect.c +++ b/lib/connect.c @@ -338,24 +338,16 @@ void iscsi_reconnect_cb(struct iscsi_context *iscsi _U_, int status, continue; } - if (pdu->flags & ISCSI_PDU_ERROR_ON_RECONNECT) { - /* - * We only want to re-queue SCSI COMMAND PDUs. - * All other PDUs are discarded at this point. - * This includes DATA-OUT, NOP and task management. - */ - pdu->callback(iscsi, SCSI_STATUS_ERROR, NULL, - pdu->private_data); - iscsi_free_pdu(old_iscsi, pdu); - continue; - } - if (pdu->flags & ISCSI_PDU_DROP_ON_RECONNECT) { /* * We only want to re-queue SCSI COMMAND PDUs. * All other PDUs are discarded at this point. * This includes DATA-OUT, NOP and task management. */ + if (pdu->callback) { + pdu->callback(iscsi, SCSI_STATUS_CANCELLED, + NULL, pdu->private_data); + } iscsi_free_pdu(old_iscsi, pdu); continue; } diff --git a/lib/login.c b/lib/login.c index aa4dfaa..72ceaf9 100644 --- a/lib/login.c +++ b/lib/login.c @@ -1267,7 +1267,7 @@ iscsi_logout_async(struct iscsi_context *iscsi, iscsi_command_cb cb, ISCSI_PDU_LOGOUT_REQUEST, ISCSI_PDU_LOGOUT_RESPONSE, iscsi_itt_post_increment(iscsi), - ISCSI_PDU_ERROR_ON_RECONNECT|ISCSI_PDU_CORK_WHEN_SENT); + ISCSI_PDU_DROP_ON_RECONNECT|ISCSI_PDU_CORK_WHEN_SENT); if (pdu == NULL) { iscsi_set_error(iscsi, "Out-of-memory: Failed to allocate " "logout pdu.");