mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
[SCSI] libsas: execute transport link resets with libata-eh via host workqueue
Link resets leave ata affiliations intact, so arrange for libsas to make an effort to avoid dropping the device due to a slow-to-recover link. Towards this end carry out reset in the host workqueue so that it can check for ata devices and kick the reset request to libata. Hard resets, in contrast, bypass libata since they are meant for associating an ata device with another initiator in the domain (tears down affiliations). Need to add a new transport_sas_phy_reset() since the current sas_phy_reset() is a utility function to libsas lldds. They are not prepared for it to loop back into eh. Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
parent
0b3e09da13
commit
81c757bc69
8 changed files with 74 additions and 3 deletions
|
@ -228,7 +228,7 @@ static void sas_set_ex_phy(struct domain_device *dev, int phy_id,
|
|||
}
|
||||
|
||||
/* check if we have an existing attached ata device on this expander phy */
|
||||
static struct domain_device *sas_ex_to_ata(struct domain_device *ex_dev, int phy_id)
|
||||
struct domain_device *sas_ex_to_ata(struct domain_device *ex_dev, int phy_id)
|
||||
{
|
||||
struct ex_phy *ex_phy = &ex_dev->ex_dev.ex_phy[phy_id];
|
||||
struct domain_device *dev;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue