aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorMoger, Babu <Babu.Moger@netapp.com>2011-10-06 13:22:07 -0400
committerJames Bottomley <JBottomley@Parallels.com>2011-10-16 11:57:27 -0400
commitbf81973a5d907ca1226e295ef67f650b8f4e9b4c (patch)
tree57f80e1a9a23a6630a1b3f3c642aaaad60307bef /drivers/scsi
parent14ed9cc7e7b9a95d56c2bf91cab2f010968d6e73 (diff)
[SCSI] scsi_dh_alua: Add one more check-condition for alua handler
This patch adds one more check-condition for scsi_dh_alua handler. Without this, the handler attach fails sometimes during the discovery. I have noticed this with NetApp E-Series storage with alua mode. Also removed some unnecessary brackets {} for consistency. Signed-off-by: Babu Moger <babu.moger@netapp.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/device_handler/scsi_dh_alua.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c b/drivers/scsi/device_handler/scsi_dh_alua.c
index 9dce3670f8d..627f4b5e517 100644
--- a/drivers/scsi/device_handler/scsi_dh_alua.c
+++ b/drivers/scsi/device_handler/scsi_dh_alua.c
@@ -465,27 +465,28 @@ static int alua_check_sense(struct scsi_device *sdev,
465 * Power On, Reset, or Bus Device Reset, just retry. 465 * Power On, Reset, or Bus Device Reset, just retry.
466 */ 466 */
467 return ADD_TO_MLQUEUE; 467 return ADD_TO_MLQUEUE;
468 if (sense_hdr->asc == 0x2a && sense_hdr->ascq == 0x06) { 468 if (sense_hdr->asc == 0x2a && sense_hdr->ascq == 0x06)
469 /* 469 /*
470 * ALUA state changed 470 * ALUA state changed
471 */ 471 */
472 return ADD_TO_MLQUEUE; 472 return ADD_TO_MLQUEUE;
473 } 473 if (sense_hdr->asc == 0x2a && sense_hdr->ascq == 0x07)
474 if (sense_hdr->asc == 0x2a && sense_hdr->ascq == 0x07) {
475 /* 474 /*
476 * Implicit ALUA state transition failed 475 * Implicit ALUA state transition failed
477 */ 476 */
478 return ADD_TO_MLQUEUE; 477 return ADD_TO_MLQUEUE;
479 } 478 if (sense_hdr->asc == 0x3f && sense_hdr->ascq == 0x03)
480 if (sense_hdr->asc == 0x3f && sense_hdr->ascq == 0x0e) { 479 /*
480 * Inquiry data has changed
481 */
482 return ADD_TO_MLQUEUE;
483 if (sense_hdr->asc == 0x3f && sense_hdr->ascq == 0x0e)
481 /* 484 /*
482 * REPORTED_LUNS_DATA_HAS_CHANGED is reported 485 * REPORTED_LUNS_DATA_HAS_CHANGED is reported
483 * when switching controllers on targets like 486 * when switching controllers on targets like
484 * Intel Multi-Flex. We can just retry. 487 * Intel Multi-Flex. We can just retry.
485 */ 488 */
486 return ADD_TO_MLQUEUE; 489 return ADD_TO_MLQUEUE;
487 }
488
489 break; 490 break;
490 } 491 }
491 492