scsi: libsas: Check link status in ATA prereset()
authorLuo Jiaxing <luojiaxing@huawei.com>
Wed, 22 Jul 2020 09:04:03 +0000 (17:04 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sat, 25 Jul 2020 02:09:55 +0000 (22:09 -0400)
commit386533796574bcdfe25ef3b8c520bc5f3a9d7c89
treea2d8d5ec4cf0329c98da7416da2b23a99f935523
parent3a243c2c35002f51ff1e62a4337cffe39b17f3d6
scsi: libsas: Check link status in ATA prereset()

libata currently attempts to reset even if the SATA disk is unplugged.  To
avoid the meaningless reset of a missing disk, libsas should report offline
status to libata. libata already provides a .prereset callback for this
purpose. This is called by ata_eh_reset() and can be used to influence
whether a reset attempt should be made.

Add sas_ata_preset callback to check status of phy and disk. If the disk is
already offline or phy is disabled, we return -ENOENT to libata to avoid
the reset.

Link: https://lore.kernel.org/r/1595408643-63011-3-git-send-email-luojiaxing@huawei.com
Reviewed-by: John Garry <john.garry@huawei.com>
Reviewed-by: Jason Yan <yanaijie@huawei.com>
Signed-off-by: Luo Jiaxing <luojiaxing@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/libsas/sas_ata.c