Re: [PATCH] scsi: libsas: Directly kick-off EH when ATA device fell off

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Xingui,

On 2022/12/16 11:29, Xingui Yang wrote:
If the ATA device fell off, call sas_ata_device_link_abort() directly and
mark all outstanding QCs as failed and kick-off EH Immediately. This avoids
having to wait for block layer timeouts.


Why does ATA device need this special operation? SAS device does not have to wait for block layer timeouts?

Thanks,
Jason

Signed-off-by: Xingui Yang <yangxingui@xxxxxxxxxx>
---
  drivers/scsi/libsas/sas_discover.c | 5 +++++
  1 file changed, 5 insertions(+)

diff --git a/drivers/scsi/libsas/sas_discover.c b/drivers/scsi/libsas/sas_discover.c
index d5bc1314c341..bd22741daa99 100644
--- a/drivers/scsi/libsas/sas_discover.c
+++ b/drivers/scsi/libsas/sas_discover.c
@@ -362,6 +362,11 @@ static void sas_destruct_ports(struct asd_sas_port *port)
void sas_unregister_dev(struct asd_sas_port *port, struct domain_device *dev)
  {
+	if (test_bit(SAS_DEV_GONE, &dev->state) &&
+	    (dev->dev_type == SAS_SATA_DEV ||
+	    (dev->tproto & SAS_PROTOCOL_STP)))
+		sas_ata_device_link_abort(dev, false);
+
  	if (!test_bit(SAS_DEV_DESTROY, &dev->state) &&
  	    !list_empty(&dev->disco_list_node)) {
  		/* this rphy never saw sas_rphy_add */




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux