Skip to content

Commit 5c3ba81

Browse files
Rajashekhar M Amartinkpetersen
authored andcommitted
scsi: error: alua: I/O errors for ALUA state transitions
When a host is configured with a few LUNs and I/O is running, injecting FC faults repeatedly leads to path recovery problems. The LUNs have 4 paths each and 3 of them come back active after say an FC fault which makes 2 of the paths go down, instead of all 4. This happens after several iterations of continuous FC faults. Reason here is that we're returning an I/O error whenever we're encountering sense code 06/04/0a (LOGICAL UNIT NOT ACCESSIBLE, ASYMMETRIC ACCESS STATE TRANSITION) instead of retrying. Signed-off-by: Rajashekhar M A <[email protected]> Signed-off-by: Hannes Reinecke <[email protected]> Link: https://lore.kernel.org/r/[email protected] Reviewed-by: Lee Duncan <[email protected]> Signed-off-by: Martin K. Petersen <[email protected]>
1 parent b2f9665 commit 5c3ba81

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

drivers/scsi/scsi_error.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -665,7 +665,8 @@ enum scsi_disposition scsi_check_sense(struct scsi_cmnd *scmd)
665665
* if the device is in the process of becoming ready, we
666666
* should retry.
667667
*/
668-
if ((sshdr.asc == 0x04) && (sshdr.ascq == 0x01))
668+
if ((sshdr.asc == 0x04) &&
669+
(sshdr.ascq == 0x01 || sshdr.ascq == 0x0a))
669670
return NEEDS_RETRY;
670671
/*
671672
* if the device is not started, we need to wake

0 commit comments

Comments
 (0)