From 6f4afb6edb34061f630fd73aada3d1b3e9429545 Mon Sep 17 00:00:00 2001 From: Ronnie Sahlberg Date: Thu, 12 Jul 2012 18:55:35 +1000 Subject: [PATCH] MEDIUM_NOT_PRESENT/TRAY-CLOSED/TRAY_OPEN is not an error that blocks a successful connect --- include/scsi-lowlevel.h | 2 ++ lib/connect.c | 4 +++- lib/scsi-lowlevel.c | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/include/scsi-lowlevel.h b/include/scsi-lowlevel.h index 7cf0e09..7872c09 100644 --- a/include/scsi-lowlevel.h +++ b/include/scsi-lowlevel.h @@ -81,6 +81,8 @@ EXTERN const char *scsi_sense_key_str(int key); #define SCSI_SENSE_ASCQ_LOGICAL_UNIT_NOT_SUPPORTED 0x2500 #define SCSI_SENSE_ASCQ_BUS_RESET 0x2900 #define SCSI_SENSE_ASCQ_MEDIUM_NOT_PRESENT 0x3a00 +#define SCSI_SENSE_ASCQ_MEDIUM_NOT_PRESENT_TRAY_CLOSED 0x3a01 +#define SCSI_SENSE_ASCQ_MEDIUM_NOT_PRESENT_TRAY_OPEN 0x3a02 #define SCSI_SENSE_ASCQ_INTERNAL_TARGET_FAILURE 0x4400 EXTERN const char *scsi_sense_ascq_str(int ascq); diff --git a/lib/connect.c b/lib/connect.c index 62591fe..b584ac2 100644 --- a/lib/connect.c +++ b/lib/connect.c @@ -66,7 +66,9 @@ iscsi_testunitready_cb(struct iscsi_context *iscsi, int status, /* Dont fail the login just because there is no medium in the device */ if (status != 0 && task->sense.key == SCSI_SENSE_NOT_READY - && task->sense.ascq == SCSI_SENSE_ASCQ_MEDIUM_NOT_PRESENT) { + && (task->sense.ascq == SCSI_SENSE_ASCQ_MEDIUM_NOT_PRESENT + || task->sense.ascq == SCSI_SENSE_ASCQ_MEDIUM_NOT_PRESENT_TRAY_CLOSED + || task->sense.ascq == SCSI_SENSE_ASCQ_MEDIUM_NOT_PRESENT_TRAY_OPEN)) { status = 0; } diff --git a/lib/scsi-lowlevel.c b/lib/scsi-lowlevel.c index 93a6438..ec16e6d 100644 --- a/lib/scsi-lowlevel.c +++ b/lib/scsi-lowlevel.c @@ -143,6 +143,10 @@ scsi_sense_ascq_str(int ascq) "LOGICAL_UNIT_NOT_SUPPORTED"}, {SCSI_SENSE_ASCQ_MEDIUM_NOT_PRESENT, "MEDIUM_NOT_PRESENT"}, + {SCSI_SENSE_ASCQ_MEDIUM_NOT_PRESENT_TRAY_CLOSED, + "MEDIUM_NOT_PRESENT-TRAY_CLOSED"}, + {SCSI_SENSE_ASCQ_MEDIUM_NOT_PRESENT_TRAY_OPEN, + "MEDIUM_NOT_PRESENT-TRAY_OPEN"}, {SCSI_SENSE_ASCQ_BUS_RESET, "BUS_RESET"}, {SCSI_SENSE_ASCQ_INTERNAL_TARGET_FAILURE,