diff mbox series

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

Message ID 20231130130118.14367-1-yangxingui@huawei.com
State New
Headers show
Series scsi: libsas: Put the disk offline if all recovery actions fail | expand

Commit Message

Xingui Yang Nov. 30, 2023, 1:01 p.m. UTC
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@huawei.com>
Signed-off-by: Bo Wu <wubo40@huawei.com>
---
 drivers/scsi/libsas/sas_scsi_host.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Xingui Yang Dec. 1, 2023, 2:59 a.m. UTC | #1
Sorry, please ignore this email, I need to update a new version, Thanks.

On 2023/11/30 21:01, Xingui Yang wrote:
> 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@huawei.com>
> Signed-off-by: Bo Wu <wubo40@huawei.com>
> ---
>   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:
>
diff mbox series

Patch

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: