diff options
author | Ilgu Hong <ilgu.hong@promise.com> | 2009-01-31 00:00:11 +0100 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2009-03-12 18:58:11 +0100 |
commit | 4d086f6baf73c02d12482c27c9f1e0682825ca13 (patch) | |
tree | 4d3801202802b4ed7347f71003a253c2a5f6e2d9 /drivers/scsi/device_handler | |
parent | [SCSI] scsi dh alua: add intel Multi-Flex device (diff) | |
download | linux-4d086f6baf73c02d12482c27c9f1e0682825ca13.tar.xz linux-4d086f6baf73c02d12482c27c9f1e0682825ca13.zip |
[SCSI] scsi dh alua: handle report luns data changed in check sense callout
When we switch controllers the Intel Multi-Flex reports
REPORTED_LUNS_DATA_HAS_CHANGED. This patch just has us
retry the command.
Signed-off-by: Ilgu Hong <ilgu.hong@promise.com>
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/device_handler')
-rw-r--r-- | drivers/scsi/device_handler/scsi_dh_alua.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c b/drivers/scsi/device_handler/scsi_dh_alua.c index 31e1df5c366b..dba154c8ff64 100644 --- a/drivers/scsi/device_handler/scsi_dh_alua.c +++ b/drivers/scsi/device_handler/scsi_dh_alua.c @@ -461,6 +461,15 @@ static int alua_check_sense(struct scsi_device *sdev, */ return ADD_TO_MLQUEUE; } + if (sense_hdr->asc == 0x3f && sense_hdr->ascq == 0x0e) { + /* + * REPORTED_LUNS_DATA_HAS_CHANGED is reported + * when switching controllers on targets like + * Intel Multi-Flex. We can just retry. + */ + return ADD_TO_MLQUEUE; + } + break; } |