diff options
author | Dan Williams <dan.j.williams@intel.com> | 2012-01-11 15:08:36 -0500 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2012-02-29 16:23:24 -0500 |
commit | d230ce691c7712c4f56ba3378d6d2f44628a49f1 (patch) | |
tree | 5d8e334e322e26e807d5c186c9aa349c905c0c9d /drivers/scsi/libsas/sas_ata.c | |
parent | 8abda4d28a55ecb91e39ceb5e3ee264c5a3cd1af (diff) |
[SCSI] libsas: fix mixed topology recovery
If we have a domain with sas and sata devices there may still be sas
recovery actions to take after peeling off the commands to send to
libata.
Reported-by: Andrzej Jakowski <andrzej.jakowski@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/libsas/sas_ata.c')
-rw-r--r-- | drivers/scsi/libsas/sas_ata.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c index 26a943eb153a..40edf520d69a 100644 --- a/drivers/scsi/libsas/sas_ata.c +++ b/drivers/scsi/libsas/sas_ata.c | |||
@@ -699,10 +699,9 @@ void sas_ata_strategy_handler(struct Scsi_Host *shost) | |||
699 | sas_enable_revalidation(sas_ha); | 699 | sas_enable_revalidation(sas_ha); |
700 | } | 700 | } |
701 | 701 | ||
702 | int sas_ata_eh(struct Scsi_Host *shost, struct list_head *work_q, | 702 | void sas_ata_eh(struct Scsi_Host *shost, struct list_head *work_q, |
703 | struct list_head *done_q) | 703 | struct list_head *done_q) |
704 | { | 704 | { |
705 | int rtn = 0; | ||
706 | struct scsi_cmnd *cmd, *n; | 705 | struct scsi_cmnd *cmd, *n; |
707 | struct ata_port *ap; | 706 | struct ata_port *ap; |
708 | 707 | ||
@@ -719,7 +718,6 @@ int sas_ata_eh(struct Scsi_Host *shost, struct list_head *work_q, | |||
719 | if (ap && ap != ddev->sata_dev.ap) | 718 | if (ap && ap != ddev->sata_dev.ap) |
720 | continue; | 719 | continue; |
721 | ap = ddev->sata_dev.ap; | 720 | ap = ddev->sata_dev.ap; |
722 | rtn = 1; | ||
723 | list_move(&cmd->eh_entry, &sata_q); | 721 | list_move(&cmd->eh_entry, &sata_q); |
724 | } | 722 | } |
725 | 723 | ||
@@ -741,8 +739,6 @@ int sas_ata_eh(struct Scsi_Host *shost, struct list_head *work_q, | |||
741 | list_del_init(sata_q.next); | 739 | list_del_init(sata_q.next); |
742 | } | 740 | } |
743 | } while (ap); | 741 | } while (ap); |
744 | |||
745 | return rtn; | ||
746 | } | 742 | } |
747 | 743 | ||
748 | void sas_ata_schedule_reset(struct domain_device *dev) | 744 | void sas_ata_schedule_reset(struct domain_device *dev) |