[SCSI] scsi_dh_alua: add scalable ONTAP lun to dev list
[deliverable/linux.git] / drivers / scsi / device_handler / scsi_dh_alua.c
index afb1d058edbdfbff11eedbde6650b5129e1f2873..5b6f9ab10d7a971243c50f1e62090fd0eadff5ca 100644 (file)
@@ -253,13 +253,15 @@ static void stpg_endio(struct request *req, int error)
 {
        struct alua_dh_data *h = req->end_io_data;
        struct scsi_sense_hdr sense_hdr;
-       unsigned err = SCSI_DH_IO;
+       unsigned err = SCSI_DH_OK;
 
        if (error || host_byte(req->errors) != DID_OK ||
-                       msg_byte(req->errors) != COMMAND_COMPLETE)
+                       msg_byte(req->errors) != COMMAND_COMPLETE) {
+               err = SCSI_DH_IO;
                goto done;
+       }
 
-       if (err == SCSI_DH_IO && h->senselen > 0) {
+       if (h->senselen > 0) {
                err = scsi_normalize_sense(h->sense, SCSI_SENSE_BUFFERSIZE,
                                           &sense_hdr);
                if (!err) {
@@ -285,7 +287,8 @@ static void stpg_endio(struct request *req, int error)
                            print_alua_state(h->state));
        }
 done:
-       blk_put_request(req);
+       req->end_io_data = NULL;
+       __blk_put_request(req->q, req);
        if (h->callback_fn) {
                h->callback_fn(h->callback_data, err);
                h->callback_fn = h->callback_data = NULL;
@@ -729,7 +732,9 @@ static const struct scsi_dh_devlist alua_dev_list[] = {
        {"Pillar", "Axiom" },
        {"Intel", "Multi-Flex"},
        {"NETAPP", "LUN"},
+       {"NETAPP", "LUN C-Mode"},
        {"AIX", "NVDISK"},
+       {"Promise", "VTrak"},
        {NULL, NULL}
 };
 
This page took 0.028441 seconds and 5 git commands to generate.