- patches.fixes/dm-mpath-reattach-dh: Do not detach hardware
authorHannes Reinecke <hare@suse.de>
Thu, 20 Nov 2008 11:02:20 +0000 (12:02 +0100)
committerHannes Reinecke <hare@suse.de>
Thu, 20 Nov 2008 11:02:20 +0000 (12:02 +0100)
  handler when removing multipath maps (bnc#435688).
- patches.fixes/scsi-dh-alua-send-stpg: Always send STPG for
  explicit tgps mode.

suse-commit: 8ce56c3d00bbf398983821614fa6a9f9529a6158

drivers/md/dm-mpath.c
drivers/scsi/device_handler/scsi_dh.c
drivers/scsi/device_handler/scsi_dh_alua.c

index 05d4c57..89d533b 100644 (file)
@@ -163,8 +163,6 @@ static void free_pgpaths(struct list_head *pgpaths, struct dm_target *ti)
 
        list_for_each_entry_safe(pgpath, tmp, pgpaths, list) {
                list_del(&pgpath->list);
-               if (m->hw_handler_name)
-                       scsi_dh_detach(bdev_get_queue(pgpath->path.dev->bdev));
                dm_put_device(ti, pgpath->path.dev);
                spin_lock_irqsave(&m->lock, flags);
                if (m->pgpath_to_activate == pgpath)
index 8e65c39..328ead8 100644 (file)
@@ -498,7 +498,6 @@ void scsi_dh_detach(struct request_queue *q)
 {
        unsigned long flags;
        struct scsi_device *sdev;
-       struct scsi_device_handler *scsi_dh = NULL;
 
        spin_lock_irqsave(q->queue_lock, flags);
        sdev = q->queuedata;
index 1b6a9dc..1000acc 100644 (file)
@@ -593,13 +593,11 @@ static int alua_activate(struct scsi_device *sdev)
        struct alua_dh_data *h = get_alua_data(sdev);
        int err = SCSI_DH_OK;
 
-       if (h->group_id != -1) {
-               err = alua_rtpg(sdev, h);
-               if (err != SCSI_DH_OK)
-                       goto out;
-       }
+       err = alua_rtpg(sdev, h);
+       if (err != SCSI_DH_OK)
+               goto out;
 
-       if (h->tpgs == TPGS_MODE_EXPLICIT && h->state != TPGS_STATE_OPTIMIZED)
+       if ((h->tpgs & TPGS_MODE_EXPLICIT) && h->state != TPGS_STATE_OPTIMIZED)
                err = alua_stpg(sdev, TPGS_STATE_OPTIMIZED, h);
 
 out: