[SCSI] scsi_dh_alua: add scalable ONTAP lun to dev list
[deliverable/linux.git] / drivers / scsi / device_handler / scsi_dh_alua.c
index 6b729324b8d37acbfa172c41dad906bdcfa5bffe..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;
@@ -303,7 +306,6 @@ done:
 static unsigned submit_stpg(struct alua_dh_data *h)
 {
        struct request *rq;
-       int err = SCSI_DH_RES_TEMP_UNAVAIL;
        int stpg_len = 8;
        struct scsi_device *sdev = h->sdev;
 
@@ -332,7 +334,7 @@ static unsigned submit_stpg(struct alua_dh_data *h)
        rq->end_io_data = h;
 
        blk_execute_rq_nowait(rq->q, NULL, rq, 1, stpg_endio);
-       return err;
+       return SCSI_DH_OK;
 }
 
 /*
@@ -730,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.024919 seconds and 5 git commands to generate.