]> git.ipfire.org Git - ipfire-2.x.git/blame - src/patches/suse-2.6.27.39/patches.fixes/scsi-dh-alua-retry-UA
Imported linux-2.6.27.39 suse/xen patches.
[ipfire-2.x.git] / src / patches / suse-2.6.27.39 / patches.fixes / scsi-dh-alua-retry-UA
CommitLineData
2cb7cef9
BS
1From: Hannes Reinecke <hare@suse.de>
2Subject: Retry ALUA device handler initialization on Unit Attention
3
4Whenever we receive a UNIT ATTENTION sense code we should just retry
5the command. We only should take care to pass through 04/02 as this
6is handled later on by the generic code in scsi_check_sense().
7
8Signed-off-by: Hannes Reinecke <hare@suse.de>
9
10diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c b/drivers/scsi/device_handler/scsi_dh_alua.c
11index e356b43..a3660a6 100644
12--- a/drivers/scsi/device_handler/scsi_dh_alua.c
13+++ b/drivers/scsi/device_handler/scsi_dh_alua.c
14@@ -444,24 +444,16 @@ static int alua_check_sense(struct scsi_device *sdev,
15 return SUCCESS;
16 break;
17 case UNIT_ATTENTION:
18- if (sense_hdr->asc == 0x29 && sense_hdr->ascq == 0x00)
19- /*
20- * Power On, Reset, or Bus Device Reset, just retry.
21- */
22- return ADD_TO_MLQUEUE;
23- if (sense_hdr->asc == 0x2a && sense_hdr->ascq == 0x06) {
24- /*
25- * ALUA state changed
26- */
27- return ADD_TO_MLQUEUE;
28- }
29- if (sense_hdr->asc == 0x2a && sense_hdr->ascq == 0x07) {
30- /*
31- * Implicit ALUA state transition failed
32- */
33- return ADD_TO_MLQUEUE;
34- }
35- break;
36+ if (sense_hdr->asc == 0x04 && sense_hdr->ascq == 0x02)
37+ /*
38+ * LUN not ready, initialization command required
39+ */
40+ return SCSI_RETURN_NOT_HANDLED;
41+
42+ /*
43+ * Just retry for UNIT_ATTENTION
44+ */
45+ return ADD_TO_MLQUEUE;
46 }
47
48 return SCSI_RETURN_NOT_HANDLED;