Re: [PATCH v3 0/4] SCSI: Fix issues between removing device and error handle

From: Wenchao Hao
Date: Tue Oct 17 2023 - 13:00:49 EST


On Mon, Oct 16, 2023 at 10:04 AM Wenchao Hao <haowenchao2@xxxxxxxxxx> wrote:
>
> I am testing SCSI error handle with my previous scsi_debug error
> injection patches, and found some issues when removing device and
> error handler happened together.
>
> These issues are triggered because devices in removing would be skipped
> when calling shost_for_each_device().

Friendly ping...

>
> Three issues are found:
> 1. statistic info printed at beginning of scsi_error_handler is wrong
> 2. device reset is not triggered
> 3. IO requeued to request_queue would be hang after error handle
>
> V3:
> - Update patch description
> - Update comments of functions added
>
> V2:
> - Fix IO hang by run all devices' queue after error handler
> - Do not modify shost_for_each_device() directly but add a new
> helper to iterate devices but do not skip devices in removing
>
> Wenchao Hao (4):
> scsi: core: Add new helper to iterate all devices of host
> scsi: scsi_error: Fix wrong statistic when print error info
> scsi: scsi_error: Fix device reset is not triggered
> scsi: scsi_core: Fix IO hang when device removing
>
> drivers/scsi/scsi.c | 46 ++++++++++++++++++++++++++------------
> drivers/scsi/scsi_error.c | 4 ++--
> drivers/scsi/scsi_lib.c | 2 +-
> include/scsi/scsi_device.h | 25 ++++++++++++++++++---
> 4 files changed, 57 insertions(+), 20 deletions(-)
>
> --
> 2.32.0
>