revert commit a8e5a2d593cb ("[SCSI] scsi_dh_alua: ALUA handler attach should succeed...
authorHannes Reinecke <hare@suse.de>
Fri, 19 Feb 2016 08:17:07 +0000 (09:17 +0100)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 24 Feb 2016 02:27:02 +0000 (21:27 -0500)
This reverts commit a8e5a2d593cbfccf530c3382c2c328d2edaa7b66

Obsoleted by the next patch.

Reviewed-by: Bart Van Assche <bart.vanassche@sandisk.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Ewan Milne <emilne@redhat.com>
Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/device_handler/scsi_dh_alua.c

index a6fe3ae..0ae2536 100644 (file)
@@ -92,7 +92,7 @@ struct alua_dh_data {
 #define ALUA_POLICY_SWITCH_CURRENT     0
 #define ALUA_POLICY_SWITCH_ALL         1
 
-static int alua_rtpg(struct scsi_device *, struct alua_port_group *, int);
+static int alua_rtpg(struct scsi_device *, struct alua_port_group *);
 static char print_alua_state(int);
 
 static void release_port_group(struct kref *kref)
@@ -326,7 +326,7 @@ static int alua_check_vpd(struct scsi_device *sdev, struct alua_dh_data *h,
                    ALUA_DH_NAME, h->pg->device_id_str,
                    h->group_id, h->rel_port);
 
-       return alua_rtpg(sdev, h->pg, 0);
+       return alua_rtpg(sdev, h->pg);
 }
 
 static char print_alua_state(int state)
@@ -409,13 +409,12 @@ static int alua_check_sense(struct scsi_device *sdev,
 /*
  * alua_rtpg - Evaluate REPORT TARGET GROUP STATES
  * @sdev: the device to be evaluated.
- * @wait_for_transition: if nonzero, wait ALUA_FAILOVER_TIMEOUT seconds for device to exit transitioning state
  *
  * Evaluate the Target Port Group State.
  * Returns SCSI_DH_DEV_OFFLINED if the path is
  * found to be unusable.
  */
-static int alua_rtpg(struct scsi_device *sdev, struct alua_port_group *pg, int wait_for_transition)
+static int alua_rtpg(struct scsi_device *sdev, struct alua_port_group *pg)
 {
        struct scsi_sense_hdr sense_hdr;
        int len, k, off, valid_states = 0, bufflen = ALUA_RTPG_SIZE;
@@ -506,8 +505,7 @@ static int alua_rtpg(struct scsi_device *sdev, struct alua_port_group *pg, int w
        else
                pg->transition_tmo = ALUA_FAILOVER_TIMEOUT;
 
-       if (wait_for_transition &&
-           (orig_transition_tmo != pg->transition_tmo)) {
+       if (orig_transition_tmo != pg->transition_tmo) {
                sdev_printk(KERN_INFO, sdev,
                            "%s: transition timeout set to %d seconds\n",
                            ALUA_DH_NAME, pg->transition_tmo);
@@ -545,19 +543,14 @@ static int alua_rtpg(struct scsi_device *sdev, struct alua_port_group *pg, int w
 
        switch (pg->state) {
        case TPGS_STATE_TRANSITIONING:
-               if (wait_for_transition) {
-                       if (time_before(jiffies, expiry)) {
-                               /* State transition, retry */
-                               interval += 2000;
-                               msleep(interval);
-                               goto retry;
-                       }
-                       err = SCSI_DH_RETRY;
-               } else {
-                       err = SCSI_DH_OK;
+               if (time_before(jiffies, expiry)) {
+                       /* State transition, retry */
+                       interval += 2000;
+                       msleep(interval);
+                       goto retry;
                }
-
                /* Transitioning time exceeded, set port to standby */
+               err = SCSI_DH_RETRY;
                pg->state = TPGS_STATE_STANDBY;
                break;
        case TPGS_STATE_OFFLINE:
@@ -713,14 +706,14 @@ static int alua_activate(struct scsi_device *sdev,
        if (optimize_stpg)
                h->pg->flags |= ALUA_OPTIMIZE_STPG;
 
-       err = alua_rtpg(sdev, h->pg, 1);
+       err = alua_rtpg(sdev, h->pg);
        if (err != SCSI_DH_OK) {
                kref_put(&h->pg->kref, release_port_group);
                goto out;
        }
        err = alua_stpg(sdev, h->pg);
        if (err == SCSI_DH_RETRY)
-               err = alua_rtpg(sdev, h->pg, 1);
+               err = alua_rtpg(sdev, h->pg);
        kref_put(&h->pg->kref, release_port_group);
 out:
        if (fn)