Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 49ea45cb authored by Don Brace's avatar Don Brace Committed by Martin K. Petersen
Browse files

scsi: hpsa: check for lv removal



Multipath failures are normally detected at the frequency of the event
thread. Detect LUN failures earlier by checking request completion status.

Reviewed-by: default avatarBader Ali-saleh <bader.ali-saleh@microsemi.com>
Reviewed-by: default avatarScott Benesh <scott.benesh@microsemi.com>
Reviewed-by: default avatarScott Teel <scott.teel@microsemi.com>
Reviewed-by: default avatarPrasad Munirathnam <Prasad.Munirathnam@microsemi.com>
Reviewed-by: default avatarKevin Barnett <kevin.barnett@microsemi.com>
Signed-off-by: default avatarDon Brace <don.brace@microsemi.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 9e98c678
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -2647,9 +2647,20 @@ static void complete_scsi_command(struct CommandList *cp)
			decode_sense_data(ei->SenseInfo, sense_data_size,
				&sense_key, &asc, &ascq);
		if (ei->ScsiStatus == SAM_STAT_CHECK_CONDITION) {
			if (sense_key == ABORTED_COMMAND) {
			switch (sense_key) {
			case ABORTED_COMMAND:
				cmd->result |= DID_SOFT_ERROR << 16;
				break;
			case UNIT_ATTENTION:
				if (asc == 0x3F && ascq == 0x0E)
					h->drv_req_rescan = 1;
				break;
			case ILLEGAL_REQUEST:
				if (asc == 0x25 && ascq == 0x00) {
					dev->removed = 1;
					cmd->result = DID_NO_CONNECT << 16;
				}
				break;
			}
			break;
		}