scsi: hisi_sas: Block requests before a debugfs snapshot
authorYihang Li <liyihang9@huawei.com>
Tue, 11 Jul 2023 03:14:59 +0000 (11:14 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sun, 23 Jul 2023 19:18:25 +0000 (15:18 -0400)
commit32be33747d5dd46dde869de390e434f3deb25d2e
tree22fecc772a0cfbfc487d1a386244fd49ba936905
parentf5393a5602cacfda2014e0ff8220e5a7564e7cd1
scsi: hisi_sas: Block requests before a debugfs snapshot

When FIO and debugfs snapshot occur concurrently, some SATA I/Os are failed
to return to the upper layer due to the setting of HISI_SAS_REJECT_CMD_BIT.
Then the SCSI layer invokes the error processing thread. However,
sas_ata_hard_reset() in EH also fails to be reset due to the setting of
HISI_SAS_REJECT_CMD_BIT. As a result, the device is disabled.

Calling scsi_block_requests() in the front of a debugfs snapshot and wait
command complete before setting HISI_SAS_REJECT_CMD_BIT to avoid SATA I/O
failures.

Signed-off-by: Yihang Li <liyihang9@huawei.com>
Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com>
Link: https://lore.kernel.org/r/1689045300-44318-3-git-send-email-chenxiang66@hisilicon.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c