scsi: libsas: Abort all in-flight requests when device is gone
authorJason Yan <yanaijie@huawei.com>
Thu, 30 Mar 2023 11:09:30 +0000 (19:09 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Mon, 3 Apr 2023 01:19:12 +0000 (21:19 -0400)
commit0e4b1791d9b192ac263a03707d876132eb0f8dab
tree8d37134414b27188da3f6947ec1442f3afe27877
parent543a827b1db3ef0a123dc7a48e8feb6585eae0a6
scsi: libsas: Abort all in-flight requests when device is gone

When a disk is removed with in-flight I/O, the application needs to wait
for 30 seconds (depending on the timeout configuration) to hear back from
the kernel. Xingui tried to fix this issue by aborting the ATA link for
SATA devices[1], however this approach left the SAS devices unresolved.

Try to fix this issue by aborting all in-flight requests when the device is
gone. This is implemented by iterating over the tagset.

[1] https://lore.kernel.org/lkml/234e04db-7539-07e4-a6b8-c6b05f78193d@opensource.wdc.com/T/

Cc: Xingui Yang <yangxingui@huawei.com>
Cc: John Garry <john.g.garry@oracle.com>
Cc: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Cc: Hannes Reinecke <hare@suse.com>
Signed-off-by: Jason Yan <yanaijie@huawei.com>
Link: https://lore.kernel.org/r/20230330110930.175539-1-yanaijie@huawei.com
Reviewed-by: John Garry <john.g.garry@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/libsas/sas_discover.c