diff options
author | Moger, Babu <Babu.Moger@netapp.com> | 2011-12-21 18:01:37 -0500 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2012-01-10 18:01:24 -0500 |
commit | 410f02d813212eef1dedfcfd43460dd11a0ff707 (patch) | |
tree | 214943cd6ebd3f89084913f7dc705c2d1253fcc1 /drivers/scsi | |
parent | 5b7db7af522d9f281ff8bf540d2b5cbea2206b27 (diff) |
[SCSI] scsi_dh_alua: Retry the check-condition in case Mode Parameters Changed
This patch adds a check-condition in scsi_dh_alua handler for a retry.
Sometimes, I have seen attach failing due to this check-condition with
following error messages on NetApp E series storage.
Dec 7 15:31:01 nilgiris kernel: [102979.696673] scsi 3:0:2:9: alua: port group 00 rel port 01
Dec 7 15:31:01 nilgiris kernel: [102979.697082] scsi 3:0:2:9: alua: rtpg failed with 8000002
Dec 7 15:31:01 nilgiris kernel: [102979.697086] scsi 3:0:2:9: alua: rtpg sense code 06/2a/01
Dec 7 15:31:01 nilgiris kernel: [102979.697088] scsi 3:0:2:9: alua: not attached
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 | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c b/drivers/scsi/device_handler/scsi_dh_alua.c index 4ef021291a4d..04c5cea47a22 100644 --- a/drivers/scsi/device_handler/scsi_dh_alua.c +++ b/drivers/scsi/device_handler/scsi_dh_alua.c | |||
@@ -466,6 +466,11 @@ static int alua_check_sense(struct scsi_device *sdev, | |||
466 | * Power On, Reset, or Bus Device Reset, just retry. | 466 | * Power On, Reset, or Bus Device Reset, just retry. |
467 | */ | 467 | */ |
468 | return ADD_TO_MLQUEUE; | 468 | return ADD_TO_MLQUEUE; |
469 | if (sense_hdr->asc == 0x2a && sense_hdr->ascq == 0x01) | ||
470 | /* | ||
471 | * Mode Parameters Changed | ||
472 | */ | ||
473 | return ADD_TO_MLQUEUE; | ||
469 | if (sense_hdr->asc == 0x2a && sense_hdr->ascq == 0x06) | 474 | if (sense_hdr->asc == 0x2a && sense_hdr->ascq == 0x06) |
470 | /* | 475 | /* |
471 | * ALUA state changed | 476 | * ALUA state changed |