scsi: hpsa: Determine device external status earlier
authorDon Brace <don.brace@microsemi.com>
Fri, 9 Sep 2016 21:30:17 +0000 (16:30 -0500)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 14 Sep 2016 18:13:37 +0000 (14:13 -0400)
Currently we are checking for external status before we are determining
if a device is an external device.

Reviewed-by: Scott Benesh <scott.benest@microsemi.com>
Reviewed-by: Scott Teel <scott.teel@microsemi.com>
Reviewed-by: Kevin Barnett <kevin.barnett@microsemi.com>
Signed-off-by: Don Brace <don.brace@microsemi.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/hpsa.c

index 030d002..332ff1a 100644 (file)
@@ -4270,6 +4270,11 @@ static void hpsa_update_scsi_devices(struct ctlr_info *h)
                lunaddrbytes = figure_lunaddrbytes(h, raid_ctlr_position,
                        i, nphysicals, nlogicals, physdev_list, logdev_list);
 
+               /* Determine if this is a lun from an external target array */
+               tmpdevice->external =
+                       figure_external_status(h, raid_ctlr_position, i,
+                                               nphysicals, nlocal_logicals);
+
                /*
                 * Skip over some devices such as a spare.
                 */
@@ -4295,11 +4300,6 @@ static void hpsa_update_scsi_devices(struct ctlr_info *h)
                        continue;
                }
 
-               /* Determine if this is a lun from an external target array */
-               tmpdevice->external =
-                       figure_external_status(h, raid_ctlr_position, i,
-                                               nphysicals, nlocal_logicals);
-
                figure_bus_target_lun(h, lunaddrbytes, tmpdevice);
                hpsa_update_device_supports_aborts(h, tmpdevice, lunaddrbytes);
                this_device = currentsd[ncurrent];