The device ID obtained from the inquiry can only be of a single type. The 
original
code places a check for TYPE_ZBC right after the check for TYPE_DISK. Logically,
if the first if statement sees a device of a TYPE_DISK and moves on to the 
second
statement checking if not TYPE_ZBC, it will always hit the continue.

--- linux/drivers/scsi/hpsa.c.orig      2016-04-27 21:43:44.463140419 -0500
+++ linux/drivers/scsi/hpsa.c   2016-04-27 22:45:31.015140419 -0500
@@ -1637,9 +1637,8 @@ static void hpsa_figure_phys_disk_ptrs(s
                for (j = 0; j < ndevices; j++) {
                        if (dev[j] == NULL)
                                continue;
-                       if (dev[j]->devtype != TYPE_DISK)
-                               continue;
-                       if (dev[j]->devtype != TYPE_ZBC)
+                       if ((dev[j]->devtype != TYPE_DISK) &&
+                           (dev[j]->devtype != TYPE_ZBC))
                                continue;
                        if (is_logical_device(dev[j]))
                                continue;
@@ -1684,9 +1683,8 @@ static void hpsa_update_log_drive_phys_d
        for (i = 0; i < ndevices; i++) {
                if (dev[i] == NULL)
                        continue;
-               if (dev[i]->devtype != TYPE_DISK)
-                       continue;
-               if (dev[i]->devtype != TYPE_ZBC)
+               if ((dev[i]->devtype != TYPE_DISK) &&
+                   (dev[i]->devtype != TYPE_ZBC))
                        continue;
                if (!is_logical_device(dev[i]))
                        continue;
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to