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/device_handler | |
| 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/device_handler')
| -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 9dce3670f8de..627f4b5e5176 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 | ||
