]>
Commit | Line | Data |
---|---|---|
2cb7cef9 BS |
1 | From: Vijay Chauhan <vijay.chauhan@lsi.com> |
2 | Subject: Retry NOT READY for rdac device handler | |
3 | References: bnc#496502 | |
4 | ||
5 | During device discovery read capacity fails with 0x020401 and sets the device | |
6 | size to 0. As a reason any I/O submitted to this path gets killed at sd_prep_fn | |
7 | with BLKPREP_KILL. This patch is to retry for 0x020401. NEED_RETRY in | |
8 | scsi_decide_disposition does not give sufficient time for the device to become | |
9 | ready. | |
10 | ||
11 | Signed-off-by: Vijay Chauhan <vijay.chauhan@lsi.com> | |
12 | Signed-off-by: Hannes Reinecke <hare@suse.de> | |
13 | ||
14 | diff --git a/drivers/scsi/device_handler/scsi_dh_rdac.c b/drivers/scsi/device_handler/scsi_dh_rdac.c | |
15 | index 77b724f..4c97279 100644 | |
16 | --- a/drivers/scsi/device_handler/scsi_dh_rdac.c | |
17 | +++ b/drivers/scsi/device_handler/scsi_dh_rdac.c | |
18 | @@ -548,6 +548,11 @@ static int rdac_check_sense(struct scsi_device *sdev, | |
19 | struct rdac_dh_data *h = get_rdac_data(sdev); | |
20 | switch (sense_hdr->sense_key) { | |
21 | case NOT_READY: | |
22 | + if (sense_hdr->asc == 0x04 && sense_hdr->ascq == 0x01) | |
23 | + /* LUN Not Ready - In process of becoming ready | |
24 | + * Just retry. | |
25 | + */ | |
26 | + return ADD_TO_MLQUEUE; | |
27 | if (sense_hdr->asc == 0x04 && sense_hdr->ascq == 0x81) | |
28 | /* LUN Not Ready - Storage firmware incompatible | |
29 | * Manual code synchonisation required. |