diff options
author | Moger, Babu <Babu.Moger@netapp.com> | 2011-10-06 13:22:07 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2011-10-16 11:57:27 -0400 |
commit | bf81973a5d907ca1226e295ef67f650b8f4e9b4c (patch) | |
tree | 57f80e1a9a23a6630a1b3f3c642aaaad60307bef /drivers/scsi | |
parent | 14ed9cc7e7b9a95d56c2bf91cab2f010968d6e73 (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.c | 15 |
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 | ||