scsi: scsi_dh_alua: remove synchronous STPG support
authorChristoph Hellwig <hch@lst.de>
Mon, 19 Jun 2017 12:27:24 +0000 (14:27 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Mon, 26 Jun 2017 16:44:35 +0000 (12:44 -0400)
Since 9c58b395 ("scsi: scsi_devinfo: remove synchronous ALUA for NETAPP
devices") this code is unused.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Bart Van Assche <bart.vanassche@wdc.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/device_handler/scsi_dh_alua.c
include/scsi/scsi_device.h

index c01b47e5b55a899a48b28553a41747b04d2903cc..0962fd5444016d8526ec03c99a9cad9fe61d2105 100644 (file)
@@ -57,7 +57,6 @@
 /* device handler flags */
 #define ALUA_OPTIMIZE_STPG             0x01
 #define ALUA_RTPG_EXT_HDR_UNSUPP       0x02
-#define ALUA_SYNC_STPG                 0x04
 /* State machine flags */
 #define ALUA_PG_RUN_RTPG               0x10
 #define ALUA_PG_RUN_STPG               0x20
@@ -70,7 +69,6 @@ MODULE_PARM_DESC(optimize_stpg, "Allow use of a non-optimized path, rather than
 static LIST_HEAD(port_group_list);
 static DEFINE_SPINLOCK(port_group_lock);
 static struct workqueue_struct *kaluad_wq;
-static struct workqueue_struct *kaluad_sync_wq;
 
 struct alua_port_group {
        struct kref             kref;
@@ -380,8 +378,6 @@ static int alua_check_vpd(struct scsi_device *sdev, struct alua_dh_data *h,
        }
 
        spin_lock_irqsave(&pg->lock, flags);
-       if (sdev->synchronous_alua)
-               pg->flags |= ALUA_SYNC_STPG;
        if (pg_updated)
                list_add_rcu(&h->node, &pg->dh_list);
        spin_unlock_irqrestore(&pg->lock, flags);
@@ -785,7 +781,6 @@ static void alua_rtpg_work(struct work_struct *work)
        int err = SCSI_DH_OK;
        struct alua_queue_data *qdata, *tmp;
        unsigned long flags;
-       struct workqueue_struct *alua_wq = kaluad_wq;
 
        spin_lock_irqsave(&pg->lock, flags);
        sdev = pg->rtpg_sdev;
@@ -796,8 +791,6 @@ static void alua_rtpg_work(struct work_struct *work)
                kref_put(&pg->kref, release_port_group);
                return;
        }
-       if (pg->flags & ALUA_SYNC_STPG)
-               alua_wq = kaluad_sync_wq;
        pg->flags |= ALUA_PG_RUNNING;
        if (pg->flags & ALUA_PG_RUN_RTPG) {
                int state = pg->state;
@@ -810,7 +803,7 @@ static void alua_rtpg_work(struct work_struct *work)
                                pg->flags &= ~ALUA_PG_RUNNING;
                                pg->flags |= ALUA_PG_RUN_RTPG;
                                spin_unlock_irqrestore(&pg->lock, flags);
-                               queue_delayed_work(alua_wq, &pg->rtpg_work,
+                               queue_delayed_work(kaluad_wq, &pg->rtpg_work,
                                                   pg->interval * HZ);
                                return;
                        }
@@ -822,7 +815,7 @@ static void alua_rtpg_work(struct work_struct *work)
                        pg->flags &= ~ALUA_PG_RUNNING;
                        pg->flags |= ALUA_PG_RUN_RTPG;
                        spin_unlock_irqrestore(&pg->lock, flags);
-                       queue_delayed_work(alua_wq, &pg->rtpg_work,
+                       queue_delayed_work(kaluad_wq, &pg->rtpg_work,
                                           pg->interval * HZ);
                        return;
                }
@@ -839,7 +832,7 @@ static void alua_rtpg_work(struct work_struct *work)
                        pg->interval = 0;
                        pg->flags &= ~ALUA_PG_RUNNING;
                        spin_unlock_irqrestore(&pg->lock, flags);
-                       queue_delayed_work(alua_wq, &pg->rtpg_work,
+                       queue_delayed_work(kaluad_wq, &pg->rtpg_work,
                                           pg->interval * HZ);
                        return;
                }
@@ -874,8 +867,6 @@ static bool alua_rtpg_queue(struct alua_port_group *pg,
 {
        int start_queue = 0;
        unsigned long flags;
-       struct workqueue_struct *alua_wq = kaluad_wq;
-
        if (WARN_ON_ONCE(!pg) || scsi_device_get(sdev))
                return false;
 
@@ -900,12 +891,10 @@ static bool alua_rtpg_queue(struct alua_port_group *pg,
                }
        }
 
-       if (pg->flags & ALUA_SYNC_STPG)
-               alua_wq = kaluad_sync_wq;
        spin_unlock_irqrestore(&pg->lock, flags);
 
        if (start_queue) {
-               if (queue_delayed_work(alua_wq, &pg->rtpg_work,
+               if (queue_delayed_work(kaluad_wq, &pg->rtpg_work,
                                msecs_to_jiffies(ALUA_RTPG_DELAY_MSECS)))
                        sdev = NULL;
                else
@@ -1166,16 +1155,11 @@ static int __init alua_init(void)
                /* Temporary failure, bypass */
                return SCSI_DH_DEV_TEMP_BUSY;
        }
-       kaluad_sync_wq = create_workqueue("kaluad_sync");
-       if (!kaluad_sync_wq) {
-               destroy_workqueue(kaluad_wq);
-               return SCSI_DH_DEV_TEMP_BUSY;
-       }
+
        r = scsi_register_device_handler(&alua_dh);
        if (r != 0) {
                printk(KERN_ERR "%s: Failed to register scsi device handler",
                        ALUA_DH_NAME);
-               destroy_workqueue(kaluad_sync_wq);
                destroy_workqueue(kaluad_wq);
        }
        return r;
@@ -1184,7 +1168,6 @@ static int __init alua_init(void)
 static void __exit alua_exit(void)
 {
        scsi_unregister_device_handler(&alua_dh);
-       destroy_workqueue(kaluad_sync_wq);
        destroy_workqueue(kaluad_wq);
 }
 
index d13bc80825b1992b0ecb4af329b6e616e0860a57..d3fb98f72a03f3cad93873a72f9b43a254e93f0a 100644 (file)
@@ -181,7 +181,6 @@ struct scsi_device {
        unsigned no_dif:1;      /* T10 PI (DIF) should be disabled */
        unsigned broken_fua:1;          /* Don't set FUA bit */
        unsigned lun_in_cdb:1;          /* Store LUN bits in CDB[1] */
-       unsigned synchronous_alua:1;    /* Synchronous ALUA commands */
 
        atomic_t disk_events_disable_depth; /* disable depth for disk events */