[SCSI] scsi_dh_alua: Add one more check-condition for alua handler
authorMoger, Babu <Babu.Moger@netapp.com>
Thu, 6 Oct 2011 17:22:07 +0000 (13:22 -0400)
committerJames Bottomley <JBottomley@Parallels.com>
Sun, 16 Oct 2011 15:57:27 +0000 (10:57 -0500)
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>
drivers/scsi/device_handler/scsi_dh_alua.c

index 9dce3670f8de045fe4c06bfdcf566706953cc61e..627f4b5e5176b16e9cc969c0b98ac80a85c4afb1 100644 (file)
@@ -465,27 +465,28 @@ static int alua_check_sense(struct scsi_device *sdev,
                         * Power On, Reset, or Bus Device Reset, just retry.
                         */
                        return ADD_TO_MLQUEUE;
-               if (sense_hdr->asc == 0x2a && sense_hdr->ascq == 0x06) {
+               if (sense_hdr->asc == 0x2a && sense_hdr->ascq == 0x06)
                        /*
                         * ALUA state changed
                         */
                        return ADD_TO_MLQUEUE;
-               }
-               if (sense_hdr->asc == 0x2a && sense_hdr->ascq == 0x07) {
+               if (sense_hdr->asc == 0x2a && sense_hdr->ascq == 0x07)
                        /*
                         * Implicit ALUA state transition failed
                         */
                        return ADD_TO_MLQUEUE;
-               }
-               if (sense_hdr->asc == 0x3f && sense_hdr->ascq == 0x0e) {
+               if (sense_hdr->asc == 0x3f && sense_hdr->ascq == 0x03)
+                       /*
+                        * Inquiry data has changed
+                        */
+                       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;
        }