]>
Commit | Line | Data |
---|---|---|
00e5a55c BS |
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; |