]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blob - src/patches/suse-2.6.27.25/patches.fixes/scsi-retry-alua-transition-in-progress
Updated xen patches taken from suse.
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.25 / patches.fixes / scsi-retry-alua-transition-in-progress
1 From: Rajashekhar M A <rajs@netapp.com>
2 Subject: I/O errors for ALUA state transitions
3 References: bnc#491289
4
5 When a SLES11 host is configured with a few LUNs and IO is running,
6 injecting FC faults repeatedly leads to path recovery problems.
7 The LUNs have 4 paths each and 3 of them come back active after
8 say an FC fault which makes two of the paths go down, instead of
9 all 4. This happens after several iterations of continuous FC faults.
10
11 Reason here is that we're returning an I/O error whenever we're
12 encountering sense code 06/04/0a (LOGICAL UNIT NOT ACCESSIBLE,
13 ASYMMETRIC ACCESS STATE TRANSITION) instead of retrying.
14
15 Signed-off-by: Hannes Reinecke <hare@suse.de>
16
17 ---
18 drivers/scsi/scsi_error.c | 3 ++-
19 1 file changed, 2 insertions(+), 1 deletion(-)
20
21 --- a/drivers/scsi/scsi_error.c
22 +++ b/drivers/scsi/scsi_error.c
23 @@ -383,7 +383,8 @@ static int scsi_check_sense(struct scsi_
24 * if the device is in the process of becoming ready, we
25 * should retry.
26 */
27 - if ((sshdr.asc == 0x04) && (sshdr.ascq == 0x01))
28 + if ((sshdr.asc == 0x04) &&
29 + (sshdr.ascq == 0x01 || sshdr.ascq == 0x0a))
30 return NEEDS_RETRY;
31 /*
32 * if the device is not started, we need to wake