[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20231016020314.1269636-1-haowenchao2@huawei.com>
Date: Mon, 16 Oct 2023 10:03:10 +0800
From: Wenchao Hao <haowenchao2@...wei.com>
To: "James E . J . Bottomley" <jejb@...ux.ibm.com>,
"Martin K . Petersen" <martin.petersen@...cle.com>,
<linux-scsi@...r.kernel.org>
CC: <linux-kernel@...r.kernel.org>, <louhongxiang@...wei.com>,
Wenchao Hao <haowenchao2@...wei.com>
Subject: [PATCH v3 0/4] SCSI: Fix issues between removing device and error handle
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().
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
Powered by blists - more mailing lists