diff options
author | Dan Williams <dan.j.williams@intel.com> | 2012-01-18 23:47:01 -0500 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2012-02-29 16:35:41 -0500 |
commit | 9508a66f898d46e726a318469312b45e0b1d078b (patch) | |
tree | e6b61e6c2a7dc8b40fdc0fe34901ff3db4af47a9 /drivers/ata/libata-scsi.c | |
parent | 92625f9bff3853951cc75f5bc084ee67c1317d2f (diff) |
[SCSI] libsas: async ata scanning
libsas ata error handling is already async but this does not help the
scan case. Move initial link recovery out from under host->scan_mutex,
and delay synchronization with eh until after all port probe/recovery
work has been queued.
Device ordering is maintained with scan order by still calling
sas_rphy_add() in order of domain discovery.
Since we now scan the domain list when invoking libata-eh we need to be
careful to check for fully initialized ata ports.
Acked-by: Jack Wang <jack_wang@usish.com>
Acked-by: Jeff Garzik <jgarzik@redhat.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/ata/libata-scsi.c')
-rw-r--r-- | drivers/ata/libata-scsi.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c index 508a60bfe5c1..1ee00c8b5b04 100644 --- a/drivers/ata/libata-scsi.c +++ b/drivers/ata/libata-scsi.c | |||
@@ -3838,6 +3838,19 @@ void ata_sas_port_stop(struct ata_port *ap) | |||
3838 | } | 3838 | } |
3839 | EXPORT_SYMBOL_GPL(ata_sas_port_stop); | 3839 | EXPORT_SYMBOL_GPL(ata_sas_port_stop); |
3840 | 3840 | ||
3841 | int ata_sas_async_port_init(struct ata_port *ap) | ||
3842 | { | ||
3843 | int rc = ap->ops->port_start(ap); | ||
3844 | |||
3845 | if (!rc) { | ||
3846 | ap->print_id = ata_print_id++; | ||
3847 | __ata_port_probe(ap); | ||
3848 | } | ||
3849 | |||
3850 | return rc; | ||
3851 | } | ||
3852 | EXPORT_SYMBOL_GPL(ata_sas_async_port_init); | ||
3853 | |||
3841 | /** | 3854 | /** |
3842 | * ata_sas_port_init - Initialize a SATA device | 3855 | * ata_sas_port_init - Initialize a SATA device |
3843 | * @ap: SATA port to initialize | 3856 | * @ap: SATA port to initialize |