[SCSI] libsas: async ata scanning
authorDan Williams <dan.j.williams@intel.com>
Thu, 19 Jan 2012 04:47:01 +0000 (20:47 -0800)
committerJames Bottomley <JBottomley@Parallels.com>
Wed, 29 Feb 2012 21:35:41 +0000 (15:35 -0600)
commit9508a66f898d46e726a318469312b45e0b1d078b
treee6b61e6c2a7dc8b40fdc0fe34901ff3db4af47a9
parent92625f9bff3853951cc75f5bc084ee67c1317d2f
[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>
14 files changed:
drivers/ata/libata-core.c
drivers/ata/libata-scsi.c
drivers/ata/libata.h
drivers/scsi/aic94xx/aic94xx_init.c
drivers/scsi/isci/init.c
drivers/scsi/libsas/sas_ata.c
drivers/scsi/libsas/sas_discover.c
drivers/scsi/libsas/sas_internal.h
drivers/scsi/libsas/sas_scsi_host.c
drivers/scsi/mvsas/mv_init.c
drivers/scsi/pm8001/pm8001_init.c
include/linux/libata.h
include/scsi/libsas.h
include/scsi/sas_ata.h