[PATCH] scsi: libsas: Put the disk offline if all recovery actions fail

From: Xingui Yang
Date: Thu Nov 30 2023 - 08:04:21 EST


Currently, after all recovery actions in sas_eh_handle_sas_errors() fail
for sas disk, we just clear all IO, but the disk is still online. Perhaps
we should continue the subsequent recovery process for IO that cannot be
processed. If it still fails, the disk will be offline in
scsi_eh_ready_devs().

Signed-off-by: Xingui Yang <yangxingui@xxxxxxxxxx>
Signed-off-by: Bo Wu <wubo40@xxxxxxxxxx>
---
drivers/scsi/libsas/sas_scsi_host.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/libsas/sas_scsi_host.c b/drivers/scsi/libsas/sas_scsi_host.c
index 9047cfcd1072..3f9b99fa1769 100644
--- a/drivers/scsi/libsas/sas_scsi_host.c
+++ b/drivers/scsi/libsas/sas_scsi_host.c
@@ -637,8 +637,8 @@ static void sas_eh_handle_sas_errors(struct Scsi_Host *shost, struct list_head *
SAS_ADDR(task->dev->sas_addr),
cmd->device->lun);

- sas_eh_finish_cmd(cmd);
- goto clear_q;
+ list_move_tail(&cmd->eh_entry, work_q);
+ goto out;
}
}
out:
--
2.17.1