From 3b3036b9dae55f0c3eef9d75db89c7b78f637a12 Mon Sep 17 00:00:00 2001 From: Ronnie Sahlberg Date: Mon, 19 Nov 2012 18:25:12 -0800 Subject: [PATCH] Add support for SCSI Sense formats 0x72/0x73 --- lib/iscsi-command.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/lib/iscsi-command.c b/lib/iscsi-command.c index daa9a60..efe23de 100644 --- a/lib/iscsi-command.c +++ b/lib/iscsi-command.c @@ -393,10 +393,20 @@ iscsi_process_scsi_reply(struct iscsi_context *iscsi, struct iscsi_pdu *pdu, memcpy(task->datain.data, in->data, task->datain.size); task->sense.error_type = task->datain.data[2] & 0x7f; - task->sense.key = task->datain.data[4] & 0x0f; - task->sense.ascq = ntohs(*(uint16_t *) - &(task->datain.data[14])); - + switch (task->sense.error_type) { + case 0x70: + case 0x71: + task->sense.key = task->datain.data[4] & 0x0f; + task->sense.ascq = ntohs(*(uint16_t *) + &(task->datain.data[14])); + break; + case 0x72: + case 0x73: + task->sense.key = task->datain.data[3] & 0x0f; + task->sense.ascq = ntohs(*(uint16_t *) + &(task->datain.data[4])); + break; + } iscsi_set_error(iscsi, "SENSE KEY:%s(%d) ASCQ:%s(0x%04x)", scsi_sense_key_str(task->sense.key), task->sense.key,