diff --git a/messages/tape_iokit/root.txt b/messages/tape_iokit/root.txt index 20abbabb..595ba357 100644 --- a/messages/tape_iokit/root.txt +++ b/messages/tape_iokit/root.txt @@ -49,8 +49,8 @@ root:table { 30804D:string { "CDB check condition: sense = %06x, %s." } 30805D:string { "CDB %s." } 30806I:string { "Unexpected CDB status: 0x%08x." } - 30807D:string { "%s (0x%02x) expected error %d." } - 30808I:string { "%s (0x%02x) returns %d." } + 30807D:string { "%s (0x%02x) expected error %02x/%02x%02x (%d)." } + 30808I:string { "%s (0x%02x) returns %02x/%02x%02x (%d)." } 30809I:string { "Cannot open device: inquiry failed (%d)." } 30810I:string { "Opening a device through iokit driver (%s)." } 30811I:string { "Cannot open device: failed to convert devname to devnumber (%s)." } diff --git a/messages/tape_linux_lin_tape/root.txt b/messages/tape_linux_lin_tape/root.txt index 780aa3e7..d54b3c8a 100644 --- a/messages/tape_linux_lin_tape/root.txt +++ b/messages/tape_linux_lin_tape/root.txt @@ -52,8 +52,8 @@ root:table { 30407D:string { "IOCTL: pos = 0x%02x%02x%02x%02x %s." } 30408I:string { "IOCTL: %s %d returns %d (generic %d) %s." } 30409D:string { "IOCTL: no sense info." } - 30410D:string { "IOCTL: %s %d expected error %d." } - 30411D:string { "IOCTL: %s %d expected error %d. retry the operation." } + 30410D:string { "IOCTL: %s %d expected error %02x/%02x%02x (%d)." } + 30411D:string { "IOCTL: %s %d expected error %02x/%02x%02x (%d). retry the operation." } 30412I:string { "Cannot get sense (%d)." } 30413I:string { "Error on %s: %s (%d) %s." } 30414E:string { "Error on %s: msg = NULL (%d) %s." } diff --git a/messages/tape_linux_sg/root.txt b/messages/tape_linux_sg/root.txt index 5bfc632b..981fdc1b 100644 --- a/messages/tape_linux_sg/root.txt +++ b/messages/tape_linux_sg/root.txt @@ -43,8 +43,8 @@ root:table { 30201D:string { "CDB check condition: sense = %06x, %s." } 30202D:string { "CDB %s." } 30203I:string { "CDB unexpected status: S = 0x%02x, M = 0x02%x" } - 30204D:string { "%s (0x%02x) expected error %d." } - 30205I:string { "%s (0x%02x) returns %d." } + 30204D:string { "%s (0x%02x) expected error %02x/%02x%02x (%d)." } + 30205I:string { "%s (0x%02x) returns %02x/%02x%02x (%d)." } 30206I:string { "Cannot open device: inquiry failed (%d)." } 30207I:string { "Vendor ID is %s." } 30208I:string { "Product ID is %s." } diff --git a/src/libltfs/arch/errormap.c b/src/libltfs/arch/errormap.c index 8fa6adf5..bc64bc84 100644 --- a/src/libltfs/arch/errormap.c +++ b/src/libltfs/arch/errormap.c @@ -429,6 +429,13 @@ static struct error_map fuse_error_list[] = { { EDEV_TIMEOUT, "D1102E", ETIMEDOUT}, { EDEV_ABORT_WAIT_READY, "D1103E", EIO}, { EDEV_OVERFLOW, "D1300E", EIO}, + { EDEV_THIRD_PARTY_ERROR, "D1000E", EIO}, + { EDEV_UNREACHABLE_TARGET, "D1001E", EIO}, + { EDEV_INCORRECT_TARGET_TYPE, "D1002E", EIO}, + { EDEV_COPY_UNDERRUN, "D1003E", EIO}, + { EDEV_COPY_OVERRUN, "D1004E", EIO}, + { EDEV_INVALID_COPY, "D1005E", EIO}, + { EDEV_COPY_INFORMATION, "D1500E", EIO}, { EDEV_CRYPTO_ERROR, "D1600E", EIO}, { EDEV_KEY_SERVICE_ERROR, "D1601E", EIO}, { EDEV_KEY_CHANGE_DETECTED, "D1602E", EIO}, diff --git a/src/libltfs/ltfs_error.h b/src/libltfs/ltfs_error.h index c762520e..6e7fb341 100644 --- a/src/libltfs/ltfs_error.h +++ b/src/libltfs/ltfs_error.h @@ -345,6 +345,7 @@ #define EDEV_DRIVE_NOT_PRESENT 20013 /* 00/8200 (TS3500) The drive is not present */ #define EDEV_RECORD_NOT_FOUND 20014 /* 00/1400 Record not found (string search) */ #define EDEV_INSUFFICIENT_TIME 20015 /* 00/2E00 Insufficient time for operation (string search) */ +#define EDEV_IDLE 20016 /* 00/5E07 Idle condition activated by timer */ #define EDEV_CLEANING_REQUIRED 20098 /* (IBM LTO 00/8282) Drive requests cleaning */ /* Sense Key 1 Recovered Error */ @@ -361,10 +362,11 @@ #define EDEV_OPERATION_IN_PROGRESS 20205 /* 00/0016 02/0407 Operation in progress */ #define EDEV_OFFLINE 20206 /* 02/0412 Device is off-line */ #define EDEV_DOOR_OPEN 20207 /* 02/0418 Door Open*/ -#define EDEV_OVER_TEMPERATURE 20208 /* 02/0B01 08/0B01 Device is too hot. */ +#define EDEV_OVER_TEMPERATURE 20208 /* 02/0B01 0B/0B01 0B/0B0A 0B/0B0C Device is too hot. */ #define EDEV_NO_MEDIUM 20209 /* 02/3A00 Drive has no medium */ #define EDEV_NOT_SELF_CONFIGURED_YET 20210 /* 02/3E00 Device is not self configured yet */ #define EDEV_PARAMETER_VALUE_REJECTED 20211 /* 02/7411 SA creation parameter value rejected */ +#define EDEV_OVER_HUMIDITY 20212 /* 02/0B0E 0B/0B0E 0B/0B10 Device humidity is too high */ #define EDEV_CLEANING_IN_PROGRESS 20297 /* 02/3003 Cleaning in progress*/ #define EDEV_IE_OPEN 20298 /* 02/0484 (TS3500) IO slot is opened */ @@ -422,6 +424,7 @@ #define EDEV_RESERVATION_PREEMPTED 20610 /* 06/2A03 Reservations preempted */ #define EDEV_RESERVATION_RELEASED 20611 /* 06/2A04 Reservations released */ #define EDEV_REGISTRATION_PREEMPTED 20612 /* 06/2A05 Registrations preempted */ +#define EDEV_PREDICTION_FAILED 20613 /* 06/5D00 Failure prediction threshold exceeded */ #define EDEV_UA_MAX 20699 /* Minimum UA error value */ #define IS_UNIT_ATTENTION(e) ((e>=EDEV_UA_MIN)&&(e<=EDEV_UA_MAX)) @@ -441,15 +444,32 @@ #define EDEV_OVERLAPPED 21101 /* 0B/4E00 Overlapped commands */ #define EDEV_TIMEOUT 21102 /* 0B/4B06 Initiator response timeout */ #define EDEV_ABORT_WAIT_READY 21103 /* 0B/2907 0B/0800 0B/0801 on Library */ +#define EDEV_MISCORRECTED_ERROR 21104 /* 0B/110A Miscorrected error */ +#define EDEV_AUTH_FAILED 21105 /* 0B/7440 Authentication failed */ /* Sense Key D Volume Overflow */ #define EDEV_OVERFLOW 21300 /* 0D/XXXX The medium is overflowed */ +/* Sense Key A Copy Aborted (3592 Only) */ +#define EDEV_THIRD_PARTY_ERROR 21000 /* 0A/0D01 Third party device failure */ +#define EDEV_UNREACHABLE_TARGET 21001 /* 0A/0D02 Copy target device not reachable */ +#define EDEV_INCORRECT_TARGET_TYPE 21002 /* 0A/0D03 Incorrect copy target device type */ +#define EDEV_COPY_UNDERRUN 21003 /* 0A/0D04 Copy target device data underrun */ +#define EDEV_COPY_OVERRUN 21004 /* 0A/0D05 Copy target device data overrun */ +#define EDEV_INVALID_COPY 21005 /* 0A/260C Invalid operation for copy source or destination */ + +/* Sense Key F Completed (3592 Only) */ +#define EDEV_COPY_INFORMATION 21500 /* 0F/0020 Extended copy information available */ + /* Crypto Errors on the tape drive */ #define EDEV_CRYPTO_ERROR 21600 /* XX/EEXX 07/EFXX 07/74XX Other crypto related errors */ #define EDEV_KEY_SERVICE_ERROR 21601 /* 04/EE0E 04/EE0F 07/EE0E 07/EE0F Key service timeout or failure */ #define EDEV_KEY_CHANGE_DETECTED 21602 /* 06/EE12 06/EE18 06/EE19 Detect key change */ #define EDEV_KEY_REQUIRED 21603 /* 07/EF10 Detect key change */ +#define EDEV_KEY_GENERATION 21604 /* 07/EE11 07/EEA1 Detect key generation */ +#define EDEV_KEY_TRANSLATE 21605 /* 07/EE13 Detect key translate */ +#define EDEV_KEY_OPTIONAL 21606 /* 07/EE1A Detect key optional */ +#define EDEV_NO_OPERATION 21607 /* 07/EEC0 Detect no operation */ /* Internal errors */ #define EDEV_INTERNAL_ERROR 21700 /* Internal logic error */ diff --git a/src/tape_drivers/ibm_tape.c b/src/tape_drivers/ibm_tape.c index 21c12e1d..db4623b9 100644 --- a/src/tape_drivers/ibm_tape.c +++ b/src/tape_drivers/ibm_tape.c @@ -378,20 +378,27 @@ struct supported_device *usb_supported_drives[] = { struct error_table ibm_tape_errors[] = { /* Sense Key 0 (No Sense) */ {0x008282, -EDEV_CLEANING_REQUIRED, "IBM LTO - Cleaning Required"}, + {0x00EE13, -EDEV_RECOVERED_ERROR, "Encryption - Key translate"}, + /* Sense Key 1 (Recoverd Error) */ + {0x015DFF, -EDEV_RECOVERED_ERROR, "Failure Prediction Threshold Exceeded (FALSE)"}, {0x018252, -EDEV_DEGRADED_MEDIA, "IBM LTO - Degraded Media"}, {0x018383, -EDEV_RECOVERED_ERROR, "Drive Has Been Cleaned"}, {0x018500, -EDEV_RECOVERED_ERROR, "Search Match List Limit (warning)"}, {0x018501, -EDEV_RECOVERED_ERROR, "Search Snoop Match Found"}, + /* Sense Key 3 (Medium Error) */ {0x038500, -EDEV_DATA_PROTECT, "Write Protected Because of Tape or Drive Failure"}, {0x038501, -EDEV_DATA_PROTECT, "Write Protected Because of Tape Failure"}, {0x038502, -EDEV_DATA_PROTECT, "Write Protected Because of Drive Failure"}, + + /* Sense Key 5 (Illegal Request) */ {0x058000, -EDEV_ILLEGAL_REQUEST, "CU Mode, Vendor-Unique"}, {0x058283, -EDEV_ILLEGAL_REQUEST, "Bad Microcode Detected"}, {0x058503, -EDEV_ILLEGAL_REQUEST, "Write Protected Because of Current Tape Position"}, {0x05A301, -EDEV_ILLEGAL_REQUEST, "OEM Vendor-Specific"}, + /* Sense Key 6 (Unit Attention) */ {0x065DFF, -EDEV_UNIT_ATTENTION, "Failure Prediction False"}, {0x068283, -EDEV_UNIT_ATTENTION, "Drive Has Been Cleaned (older versions of microcode)"}, @@ -409,6 +416,7 @@ struct error_table ibm_tape_errors[] = { {0x044781, -EDEV_HARDWARE_ERROR, "IBM LTO - Write Internal CRC Error"}, {0x04EE0E, -EDEV_KEY_SERVICE_ERROR, "Encryption - Key Service Timeout"}, /* LTO5, Jag4 and earlier */ {0x04EE0F, -EDEV_KEY_SERVICE_ERROR, "Encryption - Key Service Failure"}, /* LTO5, Jag4 and earlier */ + {0x054080, -EDEV_ILLEGAL_REQUEST, "Recovered Diagnostic Failure"}, {0x05EE00, -EDEV_CRYPTO_ERROR, "Encryption - Key Service Not Enabled"}, {0x05EE01, -EDEV_CRYPTO_ERROR, "Encryption - Key Service Not Configured"}, {0x05EE02, -EDEV_CRYPTO_ERROR, "Encryption - Key Service Not Available"}, @@ -453,12 +461,20 @@ struct error_table ibm_tape_errors[] = { {0x06EF1A, -EDEV_CRYPTO_ERROR, "Encryption - Key Optional (i.e., chose encryption enabled/disabled)"}, {0x07EE0E, -EDEV_KEY_SERVICE_ERROR, "Encryption - Key Service Timeout"}, /* LTO6, Jag5 and later */ {0x07EE0F, -EDEV_KEY_SERVICE_ERROR, "Encryption - Key Service Failure"}, /* LTO6, Jag5 and later */ + {0x07EE10, -EDEV_KEY_REQUIRED, "Encryption - Key Required"}, + {0x07EE11, -EDEV_KEY_GENERATION, "Encryption - Key Generation"}, + {0x07EE13, -EDEV_KEY_TRANSLATE, "Encryption - Key Translate"}, + {0x07EE1A, -EDEV_KEY_OPTIONAL, "Encryption - Key Optional"}, + {0x07EEA0, -EDEV_KEY_REQUIRED, "Encryption - Key Required (T10)"}, + {0x07EEA1, -EDEV_KEY_GENERATION, "Encryption - Key Generation (T10)"}, + {0x07EEC0, -EDEV_NO_OPERATION, "Encryption - No Operation"}, {0x07EF10, -EDEV_KEY_REQUIRED, "Encryption - Key Required"}, {0x07EF11, -EDEV_CRYPTO_ERROR, "Encryption - Key Generation"}, {0x07EF13, -EDEV_CRYPTO_ERROR, "Encryption - Key Translate"}, {0x07EF1A, -EDEV_CRYPTO_ERROR, "Encryption - Key Optional"}, {0x07EF31, -EDEV_CRYPTO_ERROR, "Encryption - Key Unknown"}, {0x07EFC0, -EDEV_CRYPTO_ERROR, "Encryption - No Operation"}, + /* NOTE: entries with ASC < 0x80 and ASCQ < 0x80 have been moved to standard_tape_errors */ /* END MARK*/ {0xFFFFFF, -EDEV_UNKNOWN, "Unknown Error code"}, }; diff --git a/src/tape_drivers/linux/lin_tape/lin_tape_ibmtape.c b/src/tape_drivers/linux/lin_tape/lin_tape_ibmtape.c index f8c1448c..38e5dfa5 100644 --- a/src/tape_drivers/linux/lin_tape/lin_tape_ibmtape.c +++ b/src/tape_drivers/linux/lin_tape/lin_tape_ibmtape.c @@ -503,12 +503,14 @@ static inline int _sioc_stioc_command(void *device, int cmd, char *cmd_name, voi rc = lin_tape_ibmtape_ioctlrc2err(device, fd, &sense_data, msg); if (rc == -EDEV_TIME_STAMP_CHANGED) { - ltfsmsg(LTFS_DEBUG, 30411D, cmd_name, cmd, rc); + ltfsmsg(LTFS_DEBUG, 30411D, cmd_name, cmd, + sense_data.key, sense_data.asc, sense_data.ascq, rc); goto start; } if (is_expected_error(cmd, param, rc)) { - ltfsmsg(LTFS_DEBUG, 30410D, cmd_name, cmd, rc); + ltfsmsg(LTFS_DEBUG, 30410D, cmd_name, cmd, + sense_data.key, sense_data.asc, sense_data.ascq, rc); } else { ltfsmsg(LTFS_INFO, 30408I, cmd_name, cmd, rc, errno, ((struct lin_tape_ibmtape *) device)->drive_serial); diff --git a/src/tape_drivers/linux/sg/sg_scsi_tape.c b/src/tape_drivers/linux/sg/sg_scsi_tape.c index 310c50ae..b2ea8231 100644 --- a/src/tape_drivers/linux/sg/sg_scsi_tape.c +++ b/src/tape_drivers/linux/sg/sg_scsi_tape.c @@ -393,9 +393,11 @@ int sg_issue_cdb_command(struct sg_tape *device, sg_io_hdr_t *req, char **msg) if (ret != DEVICE_GOOD) { if (is_expected_error(device, req->cmdp, ret)) { - ltfsmsg(LTFS_DEBUG, 30204D, (char *)req->usr_ptr, req->cmdp[0], ret); + ltfsmsg(LTFS_DEBUG, 30204D, (char *)req->usr_ptr, req->cmdp[0], + (sense >> 16) & 0xFF, (sense >> 8) & 0xFF, sense & 0xFF, ret); } else { - ltfsmsg(LTFS_INFO, 30205I, (char *)req->usr_ptr, req->cmdp[0], ret); + ltfsmsg(LTFS_INFO, 30205I, (char *)req->usr_ptr, req->cmdp[0], + (sense >> 16) & 0xFF, (sense >> 8) & 0xFF, sense & 0xFF, ret); } } diff --git a/src/tape_drivers/netbsd/scsipi-ibmtape/scsipi_scsi_tape.c b/src/tape_drivers/netbsd/scsipi-ibmtape/scsipi_scsi_tape.c index b9aa68f7..4f1d594e 100644 --- a/src/tape_drivers/netbsd/scsipi-ibmtape/scsipi_scsi_tape.c +++ b/src/tape_drivers/netbsd/scsipi-ibmtape/scsipi_scsi_tape.c @@ -185,6 +185,7 @@ int scsipi_issue_cdb_command(struct scsipi_tape *device, scsireq_t *req, { int status = 0; int ret = -1; + uint32_t sense = 0; CHECK_ARG_NULL(req, -LTFS_NULL_ARG); CHECK_ARG_NULL(msg, -LTFS_NULL_ARG); @@ -233,7 +234,6 @@ int scsipi_issue_cdb_command(struct scsipi_tape *device, scsireq_t *req, if (req->retsts == SCCMD_SENSE) { if (req->senselen_used) { - uint32_t sense = 0; ret = scsipi_sense2errno(req, &sense, msg); ltfsmsg(LTFS_DEBUG, 30201D, sense, *msg); } else { @@ -242,10 +242,14 @@ int scsipi_issue_cdb_command(struct scsipi_tape *device, scsireq_t *req, } } - if (is_expected_error(device, req->cmd, ret)) { - ltfsmsg(LTFS_DEBUG, 30204D, desc, req->cmd[0], ret); - } else { - ltfsmsg(LTFS_INFO, 30205I, desc, req->cmd[0], ret); + if (ret != DEVICE_GOOD) { + if (is_expected_error(device, req->cmd, ret)) { + ltfsmsg(LTFS_DEBUG, 30204D, desc, req->cmd[0], + (sense >> 16) & 0xFF, (sense >> 8) & 0xFF, sense & 0xFF, ret); + } else { + ltfsmsg(LTFS_INFO, 30205I, desc, req->cmd[0], + (sense >> 16) & 0xFF, (sense >> 8) & 0xFF, sense & 0xFF, ret); + } } out: diff --git a/src/tape_drivers/osx/iokit/iokit_scsi.c b/src/tape_drivers/osx/iokit/iokit_scsi.c index d806c784..d97c9ee2 100644 --- a/src/tape_drivers/osx/iokit/iokit_scsi.c +++ b/src/tape_drivers/osx/iokit/iokit_scsi.c @@ -257,9 +257,11 @@ int iokit_issue_cdb_command(struct iokit_device *device, free: if (ret != DEVICE_GOOD) { if (is_expected_error(device, req->cmdp, ret)) { - ltfsmsg(LTFS_DEBUG, 30807D, req->desc, req->cmdp[0], ret); + ltfsmsg(LTFS_DEBUG, 30807D, req->desc, req->cmdp[0], + (sense >> 16) & 0xFF, (sense >> 8) & 0xFF, sense & 0xFF, ret); } else { - ltfsmsg(LTFS_INFO, 30808I, req->desc, req->cmdp[0], ret); + ltfsmsg(LTFS_INFO, 30808I, req->desc, req->cmdp[0], + (sense >> 16) & 0xFF, (sense >> 8) & 0xFF, sense & 0xFF, ret); } } diff --git a/src/tape_drivers/vendor_compat.c b/src/tape_drivers/vendor_compat.c index 0df8941f..0c3ceb65 100644 --- a/src/tape_drivers/vendor_compat.c +++ b/src/tape_drivers/vendor_compat.c @@ -59,31 +59,31 @@ struct error_table standard_tape_errors[] = { /* Sense Key 0 (No Sense) */ {0x000000, -EDEV_NO_SENSE, "No Additional Sense Information"}, {0x000001, -EDEV_FILEMARK_DETECTED, "Filemark Detected"}, - {0x000002, -EDEV_EARLY_WARNING, "End-of-Partition/Medium Detected (Early Warning)"}, + {0x000002, -EDEV_EARLY_WARNING, "End-of-Partition/Medium Detected, Early Warning"}, {0x000004, -EDEV_BOP_DETECTED, "Beginning-of-Partition/Medium Detected"}, - {0x000007, -EDEV_PROG_EARLY_WARNING, "End-of-Partition/Medium Detected (Programable Early Warning)"}, + {0x000007, -EDEV_PROG_EARLY_WARNING, "Programable Early Warning Detected"}, {0x000016, -EDEV_OPERATION_IN_PROGRESS, "Operation in Progress"}, - {0x000017, -EDEV_CLEANING_REQUIRED, "Cleaning Required"}, {0x000018, -EDEV_OPERATION_IN_PROGRESS, "Erase Operation in Progress"}, + {0x000019, -EDEV_OPERATION_IN_PROGRESS, "Locate Operation in Progress"}, + {0x00001C, -EDEV_OPERATION_IN_PROGRESS, "Verify Operation in Progress"}, + {0x005E00, -EDEV_IDLE, "Always replaced by 5E 07"}, /*Just in case it appears somehow*/ + {0x005E07, -EDEV_IDLE, "Idle_c Condition Activated by Timer (and Low Power Condition ON for any reason)"}, {0x001401, -EDEV_RECORD_NOT_FOUND, "Record Not Found (String Search)"}, {0x002E00, -EDEV_INSUFFICIENT_TIME, "Insufficient Time For Operation (String Search)"}, - {0x003003, -EDEV_CLEANING_CART, "Cleaning tape installed"}, + /* Sense Key 1 (Recovered Error) */ {0x010000, -EDEV_RECOVERED_ERROR, "No Additional Sense Information"}, {0x010017, -EDEV_CLEANING_REQUIRED, "Drive Needs Cleaning"}, - {0x010A00, -EDEV_RECOVERED_ERROR, "Error log overflow"}, - {0x010C00, -EDEV_RECOVERED_ERROR, "Write Error: A write error occurred, but was recovered."}, - {0x011100, -EDEV_RECOVERED_ERROR, "Read Error: A read error occurred, but was recovered."}, + {0x010C00, -EDEV_RECOVERED_ERROR, "Write Error: A write error occurred, but was recovered. Data was successfully written into tape."}, + {0x011100, -EDEV_RECOVERED_ERROR, "Read Error: A read error occurred, but was recovered. Data was successfully read from tape."}, {0x011701, -EDEV_RECOVERED_ERROR, "Recovered Data with Retries"}, {0x011800, -EDEV_RECOVERED_ERROR, "Recovered Data with Error Correction Applied"}, {0x013700, -EDEV_MODE_PARAMETER_ROUNDED, "Mode Parameters Rounded"}, - {0x014700, -EDEV_RECOVERED_ERROR, "SCSI parity error"}, {0x015B02, -EDEV_RECOVERED_ERROR, "Log counter at maximum"}, {0x015D00, -EDEV_RECOVERED_ERROR, "Failure Prediction Threshold Exceeded"}, - {0x015DFF, -EDEV_RECOVERED_ERROR, "Failure Prediction Threshold Exceeded (FALSE)"}, - {0x01EF13, -EDEV_RECOVERED_ERROR, "Encryption - Key Translate"}, + /* Sense Key 2 (Not Ready) */ - {0x020017, -EDEV_CLEANING_IN_PROGRESS, "Drive cleaning requested"}, + {0x020016, -EDEV_OPERATION_IN_PROGRESS, "Operation in Progress"}, {0x020400, -EDEV_NOT_REPORTABLE, "Logical Unit Not Ready, Cause Not Reportable"}, {0x020401, -EDEV_BECOMING_READY, "Logical Unit Is in Process of Becoming Ready"}, {0x020402, -EDEV_NEED_INITIALIZE, "Initializing Command Required"}, @@ -93,19 +93,19 @@ struct error_table standard_tape_errors[] = { {0x020412, -EDEV_OFFLINE, "Logical Unit Not Ready, Offline"}, {0x020413, -EDEV_OPERATION_IN_PROGRESS, "Logical Unit Not Ready, SA Creation in Progress"}, {0x020B01, -EDEV_OVER_TEMPERATURE, "Warning - Specified Temperature Exceeded"}, - {0x023003, -EDEV_CLEANING_IN_PROGRESS, "Cleaning Cartridge Installed"}, + {0x020B0A, -EDEV_OVER_TEMPERATURE, "Warning - High Critical Temperature Limit Exceeded"}, + {0x020B0E, -EDEV_OVER_HUMIDITY, "Warning - High Critical Humidity Limit Exceeded"}, + {0x023003, -EDEV_CLEANING_IN_PROGRESS, "Cleaning In Progress"}, {0x023007, -EDEV_NOT_READY, "Cleaning Failure"}, {0x023A00, -EDEV_NO_MEDIUM, "Medium Not Present"}, - {0x023A02, -EDEV_IE_OPEN, "Medium Not Present - Tray Open"}, {0x023A04, -EDEV_NO_MEDIUM, "Not Ready - Medium Auxiliary Memory Accessible"}, - {0x023B12, -EDEV_DOOR_OPEN, "Magazine removed"}, {0x023E00, -EDEV_NOT_SELF_CONFIGURED_YET, "Logical Unit Has Not Self-configured"}, {0x025300, -EDEV_LOAD_UNLOAD_ERROR, "Media Load or Eject Failed"}, {0x027411, -EDEV_PARAMETER_VALUE_REJECTED, "SA Creation Parameter Value Rejected"}, /* Sense Key 3 (Medium Error) */ {0x030302, -EDEV_WRITE_PERM, "Excessive Write Errors"}, {0x030410, -EDEV_CM_PERM, "Logical Unit Not Ready, Auxiliary Memory Not Accessible"}, - {0x030900, -EDEV_RW_PERM, "Track Following Error (Servo)"}, + {0x030900, -EDEV_RW_PERM, "Track Following Error"}, {0x030C00, -EDEV_WRITE_PERM, "Write Error"}, {0x031100, -EDEV_READ_PERM, "Unrecovered Read Error"}, {0x031101, -EDEV_READ_PERM, "Read Retries Exhausted"}, @@ -115,46 +115,42 @@ struct error_table standard_tape_errors[] = { {0x031401, -EDEV_RW_PERM, "Record Not Found"}, {0x031402, -EDEV_RW_PERM, "Filemark or Setmark Not Found"}, {0x031403, -EDEV_RW_PERM, "End-of-Data Not Found"}, - {0x031404, -EDEV_MEDIUM_ERROR, "Block Sequence Error"}, + {0x031404, -EDEV_RW_PERM, "Block Sequence Error"}, {0x033000, -EDEV_MEDIUM_FORMAT_ERROR, "Incompatible Medium Installed"}, {0x033001, -EDEV_MEDIUM_FORMAT_ERROR, "Cannot Read Medium, Unknown Format"}, {0x033002, -EDEV_MEDIUM_FORMAT_ERROR, "Cannot Read Medium, Incompatible Format"}, - {0x033003, -EDEV_MEDIUM_FORMAT_ERROR, "Cleaning tape installed"}, - {0x033007, -EDEV_CLEANING_FALIURE, "Cleaning failure"}, - {0x03300D, -EDEV_MEDIUM_ERROR, "Medium Error/WORM Medium"}, + {0x03300D, -EDEV_MEDIUM_ERROR, "WORM Medium - Tampering Detected"}, {0x033100, -EDEV_MEDIUM_FORMAT_CORRUPTED, "Medium Format Corrupted"}, {0x033101, -EDEV_MEDIUM_ERROR, "Format Command Failed"}, {0x033300, -EDEV_MEDIUM_ERROR, "Tape Length Error"}, - {0x033B00, -EDEV_RW_PERM, "Sequential Positioning Error"}, + {0x033B00, -EDEV_MEDIUM_ERROR, "Sequential Positioning Error"}, {0x035000, -EDEV_RW_PERM, "Write Append Error"}, {0x035100, -EDEV_MEDIUM_ERROR, "Erase Failure"}, - {0x035200, -EDEV_RW_PERM, "Cartridge Fault"}, + {0x035200, -EDEV_MEDIUM_ERROR, "(LTO)Cartridge Fault/(3592)Media Load or Eject Failed"}, {0x035300, -EDEV_LOAD_UNLOAD_ERROR, "Media Load or Eject Failed"}, {0x035304, -EDEV_LOAD_UNLOAD_ERROR, "Medium Thread or Unthread Failure"}, + /* Sense Key 4 (Hardware or Firmware Error) */ - {0x040302, -EDEV_HARDWARE_ERROR, "Open Writer Failure"}, + {0x040302, -EDEV_WRITE_PERM, "Excessive Write, Errors: The Drive is Fenced. Contact Service."}, {0x040403, -EDEV_HARDWARE_ERROR, "Manual Intervention Required"}, - {0x040801, -EDEV_HARDWARE_ERROR, "Logical Unit Communication Failure"}, {0x040900, -EDEV_HARDWARE_ERROR, "Track Following Error"}, {0x041001, -EDEV_LBP_WRITE_ERROR, "Logical Block Guard Check Failed"}, {0x041004, -EDEV_HARDWARE_ERROR, "Logical Block Protection Error On Recover Buffered Data"}, {0x041501, -EDEV_HARDWARE_ERROR, "Machanical Position Error"}, {0x043B00, -EDEV_HARDWARE_ERROR, "Sequential Positioning Error"}, {0x043B08, -EDEV_HARDWARE_ERROR, "Reposition Error"}, - {0x043B0D, -EDEV_HARDWARE_ERROR, "Medium Destination Element Full"}, - {0x043B0E, -EDEV_HARDWARE_ERROR, "Medium Source Element Empty"}, - {0x043F0F, -EDEV_HARDWARE_ERROR, "Echo buffer overwritten"}, {0x044000, -EDEV_HARDWARE_ERROR, "Diagnostic Failure"}, {0x044100, -EDEV_HARDWARE_ERROR, "Data Path Failure"}, - {0x044400, -EDEV_HARDWARE_ERROR, "Internal Target Failure"}, + {0x044400, -EDEV_HARDWARE_ERROR, "Internal Target Failure, Drive Needs Cleaning/Cleaning Failure"}, {0x044C00, -EDEV_HARDWARE_ERROR, "Logical Unit Failed Self-Configuration"}, {0x045100, -EDEV_HARDWARE_ERROR, "Erase Failure"}, {0x045200, -EDEV_HARDWARE_ERROR, "Cartridge Fault"}, - {0x045300, -EDEV_HARDWARE_ERROR, "Media Load or Eject Failed"}, - {0x045301, -EDEV_HARDWARE_ERROR, "A drive did not unload a cartridge."}, + {0x045300, -EDEV_HARDWARE_ERROR, "Media Load or Eject Failed, Contact Service."}, + {0x045301, -EDEV_HARDWARE_ERROR, "Unload Tape Failure"}, {0x045304, -EDEV_HARDWARE_ERROR, "Medium Thread or Unthread Failure"}, /* Sense Key 5 (Illegal Request) */ - {0x050E03, -EDEV_ILLEGAL_REQUEST, "Invalid Field in Command Information Unit (e.g., FCP_DL error)"}, + {0x050016, -EDEV_OPERATION_IN_PROGRESS, "Operation in Progress"}, + {0x050E03, -EDEV_ILLEGAL_REQUEST, "Invalid Field in Command Information Unit (e.g., FCP_DL error, Likely Device Driver or HBA issue.)"}, {0x051A00, -EDEV_ILLEGAL_REQUEST, "Parameter List Length Error"}, {0x052000, -EDEV_ILLEGAL_REQUEST, "Invalid Command Operation Code"}, {0x05200C, -EDEV_ILLEGAL_REQUEST, "Illegal Command When Not In Append-Only Mode"}, @@ -162,19 +158,21 @@ struct error_table standard_tape_errors[] = { {0x052400, -EDEV_INVALID_FIELD_CDB, "Invalid Field in CDB"}, {0x052500, -EDEV_ILLEGAL_REQUEST, "Logical Unit Not Supported"}, {0x052600, -EDEV_ILLEGAL_REQUEST, "Invalid Field in Parameter List"}, - {0x052601, -EDEV_ILLEGAL_REQUEST, "Parameter list error: parameter not supported"}, - {0x052602, -EDEV_ILLEGAL_REQUEST, "Parameter value invalid"}, + {0x052601, -EDEV_ILLEGAL_REQUEST, "Parameter not Supported"}, + {0x052602, -EDEV_ILLEGAL_REQUEST, "Parameter Value Invalid"}, {0x052603, -EDEV_ILLEGAL_REQUEST, "Threshold Parameters Not Supported"}, - {0x052604, -EDEV_ILLEGAL_REQUEST, "Invalid release of persistent reservation"}, + {0x052604, -EDEV_ILLEGAL_REQUEST, "Invalid Release of Persistent Reservation"}, + {0x052606, -EDEV_ILLEGAL_REQUEST, "Too Many Target Descriptors"}, + {0x052607, -EDEV_ILLEGAL_REQUEST, "Unsupported Target Descriptor Type Code"}, + {0x052608, -EDEV_ILLEGAL_REQUEST, "Too Many Segment Descriptors"}, + {0x052609, -EDEV_ILLEGAL_REQUEST, "Unsupported Segment Descriptor Type Code"}, + {0x05260C, -EDEV_ILLEGAL_REQUEST, "Invalid Operation for Copy Source or Destination"}, {0x052611, -EDEV_ILLEGAL_REQUEST, "Encryption - Incomplete Key-Associate Data Set"}, {0x052612, -EDEV_ILLEGAL_REQUEST, "Vendor Specific Key Reference Not Found"}, - {0x052690, -EDEV_ILLEGAL_REQUEST, "Wrong firmware image, does not fit boot code"}, - {0x052691, -EDEV_ILLEGAL_REQUEST, "Wrong personality firmware image"}, - {0x052693, -EDEV_ILLEGAL_REQUEST, "Wrong firmware image, checksum error"}, {0x052904, -EDEV_ILLEGAL_REQUEST, "Device Internal Reset"}, + {0x052A0B, -EDEV_ILLEGAL_REQUEST, "Error History Snapshot Released"}, {0x052C00, -EDEV_ILLEGAL_REQUEST, "Command Sequence Error"}, {0x052C0B, -EDEV_ILLEGAL_REQUEST, "Not Reserved"}, - {0x053000, -EDEV_ILLEGAL_REQUEST, "Incompatible Medium Installed"}, {0x053005, -EDEV_ILLEGAL_REQUEST, "Cannot Write Medium - Incompatible Format"}, {0x053900, -EDEV_ILLEGAL_REQUEST, "Saving Parameters Not Supported"}, {0x053B00, -EDEV_ILLEGAL_REQUEST, "Sequential Positioning Error"}, @@ -182,85 +180,108 @@ struct error_table standard_tape_errors[] = { {0x053B0D, -EDEV_DEST_FULL, "Medium Destination Element Full"}, {0x053B0E, -EDEV_SRC_EMPTY, "Medium Source Element Empty"}, {0x053B11, -EDEV_MAGAZINE_INACCESSIBLE, "Medium magazine not accessible"}, - {0x053B12, -EDEV_MAGAZINE_INACCESSIBLE, "Media magazine not installed."}, {0x053D00, -EDEV_ILLEGAL_REQUEST, "Invalid Bits in Identify Message"}, {0x054900, -EDEV_ILLEGAL_REQUEST, "Invalid Message Error"}, - {0x055301, -EDEV_MEDIUM_LOCKED, "A drive did not unload a cartridge."}, {0x055302, -EDEV_MEDIUM_LOCKED, "Medium Removal Prevented"}, - {0x055303, -EDEV_MEDIUM_LOCKED, "Drive media removal prevented state set"}, + {0x055303, -EDEV_MEDIUM_LOCKED, "Insufficient Resources"}, + {0x055306, -EDEV_ILLEGAL_REQUEST, "Auxiliary Memory Out of Space"},/*LTO*/ + {0x055503, -EDEV_ILLEGAL_REQUEST, "Insufficient Resources"}, + {0x055506, -EDEV_ILLEGAL_REQUEST, "Auxiliary Memory Out of Space"},/*3592*/ {0x055508, -EDEV_ILLEGAL_REQUEST, "Maximum Number of Supplemental Decryption Keys Exceeded"}, {0x055B03, -EDEV_ILLEGAL_REQUEST, "Log List Codes Exhausted"}, {0x057408, -EDEV_ILLEGAL_REQUEST, "Digital Signature Validation Failure"}, {0x05740C, -EDEV_ILLEGAL_REQUEST, "Unable to Decrypt Parameter List"}, + {0x05740D, -EDEV_ILLEGAL_REQUEST, "Crypto Algorithm Disabled"}, {0x057410, -EDEV_ILLEGAL_REQUEST, "SA Creation Parameter Value Invalid"}, {0x057411, -EDEV_ILLEGAL_REQUEST, "SA Creation Parameter Value Rejected"}, {0x057412, -EDEV_ILLEGAL_REQUEST, "Invalid SA Usage"}, + {0x057421, -EDEV_ILLEGAL_REQUEST, "Crypto Configuration Prevented"}, {0x057430, -EDEV_ILLEGAL_REQUEST, "SA Creation Parameter not Supported"}, + /* Sense Key 6 (Unit Attention) */ {0x060002, -EDEV_EARLY_WARNING, "End-of-Partition/Medium Detected, Early Warning"}, {0x062800, -EDEV_MEDIUM_MAY_BE_CHANGED, "Not Ready to Ready Transition, Medium May Have Changed"}, - {0x062801, -EDEV_IE_ACCESSED, "Import or Export Element Accessed"}, + {0x062801, -EDEV_IE_ACCESSED, "LUN 1-Import or Export Element Accessed"}, {0x062900, -EDEV_POR_OR_BUS_RESET, "Power On, Reset, or Bus Device Reset Occurred"}, {0x062901, -EDEV_POR_OR_BUS_RESET, "Power on occurred"}, - {0x062902, -EDEV_POR_OR_BUS_RESET, "SCSI Bus reset occurred"}, - {0x062903, -EDEV_POR_OR_BUS_RESET, "Internal reset occurred"}, - {0x062904, -EDEV_POR_OR_BUS_RESET, "Internal reset occurred"}, + {0x062903, -EDEV_POR_OR_BUS_RESET, "Bus Device Reset Function Occurred"}, + {0x062904, -EDEV_POR_OR_BUS_RESET, "LUN 0-Device Internal Reset/LUN 1-Library Reset Occurred on Path to This Drive"}, {0x062905, -EDEV_UNIT_ATTENTION, "Transceiver Mode Changed To Single-ended"}, {0x062906, -EDEV_UNIT_ATTENTION, "Transceiver Mode Changed To LVD"}, + {0x062A00, -EDEV_CONFIGURE_CHANGED, "Parameters Changed"}, {0x062A01, -EDEV_CONFIGURE_CHANGED, "Mode Parameters Changed"}, - {0x062A02, -EDEV_CONFIGURE_CHANGED, "Mode Parameters Changed"}, - {0x062A03, -EDEV_RESERVATION_PREEMPTED, "Reservations preempted"}, - {0x062A04, -EDEV_RESERVATION_RELEASED, "Reservations released"}, - {0x062A05, -EDEV_REGISTRATION_PREEMPTED, "Registrations preempted"}, + {0x062A02, -EDEV_CONFIGURE_CHANGED, "Log Parameters Changed"}, + {0x062A03, -EDEV_UNIT_ATTENTION, "Reservations preempted"}, + {0x062A04, -EDEV_UNIT_ATTENTION, "Reservations released"}, + {0x062A05, -EDEV_UNIT_ATTENTION, "Registrations preempted"}, + {0x062A0A, -EDEV_UNIT_ATTENTION, "Error History I_T Nexus Cleared"}, + {0x062A0B, -EDEV_UNIT_ATTENTION, "Crypto Capabilities Changed"},/*LTO*/ + {0x062A0D, -EDEV_UNIT_ATTENTION, "Data Encryption Capabilities Changed"},/*3592*/ {0x062A10, -EDEV_TIME_STAMP_CHANGED, "Time stamp changed"}, {0x062A11, -EDEV_CRYPTO_ERROR, "Encryption - Data Encryption Parameters Changed by Another I_T Nexus"}, {0x062A12, -EDEV_CRYPTO_ERROR, "Encryption - Data Encryption Parameters Changed by Vendor Specific Event"}, {0x062A14, -EDEV_UNIT_ATTENTION, "SA Creation Capabilities Data Has Changed"}, {0x062F00, -EDEV_COMMAND_CLEARED, "Commands Cleared by Another Initiator"}, {0x063000, -EDEV_MEDIUM_ERROR, "Incompatible Medium Installed"}, - {0x063B12, -EDEV_DOOR_CLOSED, "Medium magazine removed"}, - {0x063B13, -EDEV_DOOR_CLOSED, "Medium magazine inserted"}, + {0x063B12, -EDEV_DOOR_CLOSED, "LUN 1-Medium Magazine Removed"}, + {0x063B13, -EDEV_DOOR_CLOSED, "LUN 1-Medium Magazine Inserted"}, + {0x063B14, -EDEV_DOOR_CLOSED, "Medium Magazine Locked"}, + {0x063B15, -EDEV_DOOR_CLOSED, "Medium Magazine Unlocked"}, + {0x063B1A, -EDEV_UNIT_ATTENTION, "LUN 1-Drive Removed"}, + {0x063B1B, -EDEV_UNIT_ATTENTION, "LUN 1-Drive Inserted"}, {0x063F01, -EDEV_CONFIGURE_CHANGED, "Microcode Has Been Changed"}, {0x063F02, -EDEV_CONFIGURE_CHANGED, "Changed Operating Definition"}, {0x063F03, -EDEV_CONFIGURE_CHANGED, "Inquiry Data Has Changed"}, - {0x063F05, -EDEV_CONFIGURE_CHANGED, "Device Identifier Changed"}, + {0x063F05, -EDEV_CONFIGURE_CHANGED, "LUN 1-Device Identifier Changed"}, {0x063F0E, -EDEV_CONFIGURE_CHANGED, "Reported LUNs Data Has Changed"}, - {0x065302, -EDEV_MEDIA_REMOVAL_PREV, "Media removal prevented"}, {0x065A01, -EDEV_MEDIUM_REMOVAL_REQ, "Operator Medium Removal Request"}, + {0x065D00, -EDEV_PREDICTION_FAILED, "Failure Prediction Thershold Exceeded"}, + /* Sense Key 7 (Data Protect) */ {0x072610, -EDEV_CRYPTO_ERROR, "Encryption - Data Decryption Key Fail Limit"}, {0x072700, -EDEV_WRITE_PROTECTED, "Write Protected"}, {0x072A13, -EDEV_CRYPTO_ERROR, "Encryption - Data Encryption Key Instance Counter Has Changed"}, - {0x073005, -EDEV_DATA_PROTECT, "Cannot Write Medium, Incompatible Format"}, - {0x073000, -EDEV_WRITE_PROTECTED_WORM, "Data Protect/WORM Medium"}, + {0x073005, -EDEV_DATA_PROTECT, "Cannot Write Medium - Incompatible Format"}, + {0x073006, -EDEV_DATA_PROTECT, "Cannot Format Medium - Incompatible Format"}, {0x07300C, -EDEV_WRITE_PROTECTED_WORM, "Data Protect/WORM Medium - Overwrite Attempted"}, {0x07300D, -EDEV_WRITE_PROTECTED_WORM, "Data Protect/WORM Medium - Integrity Check"}, {0x075001, -EDEV_WRITE_PROTECTED_WORM, "Write Append Position Error (WORM)"}, {0x075200, -EDEV_DATA_PROTECT, "Cartridge Fault"}, - {0x075A02, -EDEV_WRITE_PROTECTED_OPERATOR, "Data Protect/Operator - Overwrite Attempted"}, + {0x075A02, -EDEV_WRITE_PROTECTED_OPERATOR, "Operator Selected Write Protect"}, {0x077400, -EDEV_WRITE_PROTECTED_WORM, "Security Error"}, {0x077401, -EDEV_CRYPTO_ERROR, "Encryption - Unable to Decrypt Data"}, {0x077402, -EDEV_CRYPTO_ERROR, "Encryption - Unencrypted Data Encountered While Decrypting"}, {0x077403, -EDEV_CRYPTO_ERROR, "Encryption - Incorrect Data Encryption Key"}, {0x077404, -EDEV_CRYPTO_ERROR, "Encryption - Cryptographic Integrity Validation Failed"}, {0x077405, -EDEV_CRYPTO_ERROR, "Encryption - Error Decrypting Data"}, + {0x077406, -EDEV_CRYPTO_ERROR, "Unkown Signature Verification Key"}, + {0x077407, -EDEV_CRYPTO_ERROR, "Encryption Parameters Not Useable"}, + {0x077409, -EDEV_CRYPTO_ERROR, "Encryption Mode Mismatch on Read"}, + {0x07740A, -EDEV_CRYPTO_ERROR, "Encryption Block Not Raw Read Enabled"}, + {0x07740B, -EDEV_CRYPTO_ERROR, "Incorrect Encryption Parameters"}, + {0x07746F, -EDEV_CRYPTO_ERROR, "External Data Encryption Control Error"}, + /* Sense Key 8 (Blank Check) */ - {0x080005, -EDEV_EOD_DETECTED, "End-of-Data (EOD) Detected"}, - {0x081401, -EDEV_RECORD_NOT_FOUND, "Record Not Found, Void Tape"}, - {0x081403, -EDEV_EOD_NOT_FOUND, "End-of-Data (EOD) not found"}, - {0x080B01, -EDEV_OVER_TEMPERATURE, "The drive detected an overtemperature condition."}, + {0x080005, -EDEV_EOD_DETECTED, "End-of-Data Detected"}, + {0x081401, -EDEV_RECORD_NOT_FOUND, "Record Not Found, Void Tape"}, /* Sense Key B (Aborted Command) */ - {0x0B0E01, -EDEV_ABORTED_COMMAND, "Information Unit Too Short"}, + {0x0B001E, -EDEV_ABORTED_COMMAND, "Conflicting SA Creation Request"}, + {0x0B0B01, -EDEV_OVER_TEMPERATURE, "Warning - Specified Temperature Exceeded"}, + {0x0B0B0A, -EDEV_OVER_TEMPERATURE, "Warning - High Critical Temperature Limit Exceeded"}, + {0x0B0B0C, -EDEV_OVER_TEMPERATURE, "Warning - High Operating Temperature Limit Exceeded"}, + {0x0B0B0E, -EDEV_OVER_HUMIDITY, "Warning - High Critical Humidity Limit Exceeded"}, + {0x0B0B10, -EDEV_OVER_HUMIDITY, "Warning - High Operating Humidity Limit Exceeded"}, + {0x0B110A, -EDEV_MISCORRECTED_ERROR, "Miscorrected Error"}, {0x0B1400, -EDEV_ABORTED_COMMAND, "Recorded Entity Not Found"}, {0x0B1401, -EDEV_ABORTED_COMMAND, "Record Not Found"}, {0x0B1402, -EDEV_ABORTED_COMMAND, "Filemark or Setmark Not Found"}, {0x0B1B00, -EDEV_ABORTED_COMMAND, "Synchronous Data Transfer Error"}, + {0x0B2C00, -EDEV_ABORTED_COMMAND, "Command Sequence Error"}, {0x0B3D00, -EDEV_ABORTED_COMMAND, "Invalid Bits in Identify Message"}, {0x0B3F0F, -EDEV_ABORTED_COMMAND, "Echo Buffer Overwritten"}, - {0x0B4100, -EDEV_ABORTED_COMMAND, "LDI command Failure"}, {0x0B4300, -EDEV_ABORTED_COMMAND, "Message Error"}, - {0x0B4400, -EDEV_ABORTED_COMMAND, "Internal Target Failure"}, - {0x0B4500, -EDEV_ABORTED_COMMAND, "Select/Reselect Failure"}, + {0x0B4400, -EDEV_ABORTED_COMMAND, "Internal Target Failure-Hardware or Firmware Problem"}, + {0x0B4500, -EDEV_ABORTED_COMMAND, "Select or Reselect Failure"}, {0x0B4700, -EDEV_ABORTED_COMMAND, "SCSI Parity Error"}, {0x0B4703, -EDEV_ABORTED_COMMAND, "Information Unit iuCRC Error Detected"}, {0x0B4800, -EDEV_ABORTED_COMMAND, "Initiator Detected Error Message Received"}, @@ -272,11 +293,20 @@ struct error_table standard_tape_errors[] = { {0x0B4B04, -EDEV_ABORTED_COMMAND, "NAK Received"}, {0x0B4B05, -EDEV_ABORTED_COMMAND, "Data Offset Error"}, {0x0B4B06, -EDEV_TIMEOUT, "Initiator Response Timeout"}, - {0x0B4E00, -EDEV_OVERLAPPED, "Overlapped Commands"}, - {0x0B0801, -EDEV_ABORTED_COMMAND, "LU Communication - Timeout"}, - + {0x0B4E00, -EDEV_OVERLAPPED, "Overlapped Commands Attempted"}, + {0x0B7440, -EDEV_AUTH_FAILED, "Authentication Failed"}, + /* Sense Key A (Copy Aborted) */ + {0x0A0D01, -EDEV_THIRD_PARTY_ERROR, "Third Party Device Failure"}, + {0x0A0D02, -EDEV_UNREACHABLE_TARGET, "Copy Target Device Not Reachable"}, + {0x0A0D03, -EDEV_INCORRECT_TARGET_TYPE, "Incorrect Copy Target Device Type"}, + {0x0A0D04, -EDEV_COPY_UNDERRUN, "Copy Target Device Data Underrun"}, + {0x0A0D05, -EDEV_COPY_OVERRUN, "Copy Target Device Data Overrun"}, + {0x0A260C, -EDEV_INVALID_COPY, "Invalid Operation for Copy Source or Destination"}, + {0x0A2F02, -EDEV_COMMAND_CLEARED, "Commands Cleared by Device Server"}, /* Sense Key D (Volume Overflow) */ {0x0D0002, -EDEV_OVERFLOW, "End-of-Partition/Medium Detected"}, + /* Sense Key F (Completed) */ + {0x0F0020, -EDEV_COPY_INFORMATION, "Extended Copy Information Available"}, /* END MARK*/ {0xFFFFFF, -EDEV_UNKNOWN, "Unknown Error code"}, };