hpsa: add in new offline mode
authorScott Benesh <scott.benesh@pmcs.com>
Sat, 18 Jul 2015 16:13:04 +0000 (11:13 -0500)
committerJames Bottomley <JBottomley@Odin.com>
Wed, 26 Aug 2015 23:28:48 +0000 (16:28 -0700)
prevent adding volumes that are not available.

Reviewed-by: Kevin Barnett <kevin.barnett@pmcs.com>
Reviewed-by: Scott Teel <scott.teel@pmcs.com>
Reviewed-by: Justin Lindley <justin.lindley@pmcs.com>
Reviewed-by: Tomas Henzl <thenzl@redhat.com>
Signed-off-by: Don Brace <don.brace@pmcs.com>
Signed-off-by: James Bottomley <JBottomley@Odin.com>
drivers/scsi/hpsa.c
drivers/scsi/hpsa_cmd.h

index bf877eb61016ea6c2a98d39206d2571fd62bd79d..07512463b99012dbb531b8a3e0fc8c2f06cbfefb 100644 (file)
@@ -1481,17 +1481,23 @@ static void hpsa_show_volume_status(struct ctlr_info *h,
                        h->scsi_host->host_no,
                        sd->bus, sd->target, sd->lun);
                break;
+       case HPSA_LV_NOT_AVAILABLE:
+               dev_info(&h->pdev->dev,
+                       "C%d:B%d:T%d:L%d Volume is waiting for transforming volume.\n",
+                       h->scsi_host->host_no,
+                       sd->bus, sd->target, sd->lun);
+               break;
        case HPSA_LV_UNDERGOING_RPI:
                dev_info(&h->pdev->dev,
-                       "C%d:B%d:T%d:L%d Volume is undergoing rapid parity initialization process.\n",
+                       "C%d:B%d:T%d:L%d Volume is undergoing rapid parity init.\n",
                        h->scsi_host->host_no,
                        sd->bus, sd->target, sd->lun);
                break;
        case HPSA_LV_PENDING_RPI:
                dev_info(&h->pdev->dev,
-                               "C%d:B%d:T%d:L%d Volume is queued for rapid parity initialization process.\n",
-                               h->scsi_host->host_no,
-                               sd->bus, sd->target, sd->lun);
+                       "C%d:B%d:T%d:L%d Volume is queued for rapid parity initialization process.\n",
+                       h->scsi_host->host_no,
+                       sd->bus, sd->target, sd->lun);
                break;
        case HPSA_LV_ENCRYPTED_NO_KEY:
                dev_info(&h->pdev->dev,
@@ -3262,6 +3268,7 @@ static int hpsa_volume_offline(struct ctlr_info *h,
        /* Keep volume offline in certain cases: */
        switch (ldstat) {
        case HPSA_LV_UNDERGOING_ERASE:
+       case HPSA_LV_NOT_AVAILABLE:
        case HPSA_LV_UNDERGOING_RPI:
        case HPSA_LV_PENDING_RPI:
        case HPSA_LV_ENCRYPTED_NO_KEY:
index 1a98bbebf15b9582fce7868755ff45b93d6b0598..47c756ba8dce414ce7302e3198359eda8223c327 100644 (file)
 /* Logical volume states */
 #define HPSA_VPD_LV_STATUS_UNSUPPORTED                 0xff
 #define HPSA_LV_OK                                      0x0
+#define HPSA_LV_NOT_AVAILABLE                          0x0b
 #define HPSA_LV_UNDERGOING_ERASE                       0x0F
 #define HPSA_LV_UNDERGOING_RPI                         0x12
 #define HPSA_LV_PENDING_RPI                            0x13