]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blob - src/patches/suse-2.6.27.31/patches.fixes/scsi-dh-alua-retry-UA
Merge branch 'master' of git://git.ipfire.org/ipfire-2.x
[people/teissler/ipfire-2.x.git] / src / patches / suse-2.6.27.31 / patches.fixes / scsi-dh-alua-retry-UA
1 From: Hannes Reinecke <hare@suse.de>
2 Subject: Retry ALUA device handler initialization on Unit Attention
3
4 Whenever we receive a UNIT ATTENTION sense code we should just retry
5 the command. We only should take care to pass through 04/02 as this
6 is handled later on by the generic code in scsi_check_sense().
7
8 Signed-off-by: Hannes Reinecke <hare@suse.de>
9
10 diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c b/drivers/scsi/device_handler/scsi_dh_alua.c
11 index 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;