]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blob - src/patches/suse-2.6.27.31/patches.fixes/scsi-dh-rdac-retry-for-not-ready
Reenabled linux-xen, added patches for Xen Kernel Version 2.6.27.31,
[people/teissler/ipfire-2.x.git] / src / patches / suse-2.6.27.31 / patches.fixes / scsi-dh-rdac-retry-for-not-ready
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.