[RFC PATCH] ata: libata-eh: Retry the cmnd when normal complete occurrd after scsi timeout

From: Wu Bo
Date: Wed Dec 28 2022 - 03:56:52 EST


From: wubo <wubo40@xxxxxxxxxx>

Hi,

Now SCSI middle layer EH and normal IO handler can only choose one of them,
after the SCSI command is completed normally after scsi timeout period,
Should this scenario be given a chance to retry?

Signed-off-by: wubo <wubo40@xxxxxxxxxx>
---
drivers/ata/libata-eh.c | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index 34303ce..8d1856f 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -617,14 +617,8 @@ void ata_scsi_cmd_error_handler(struct Scsi_Host *host, struct ata_port *ap,
qc->flags |= ATA_QCFLAG_FAILED;
nr_timedout++;
}
- } else {
- /* Normal completion occurred after
- * SCSI timeout but before this point.
- * Successfully complete it.
- */
- scmd->retries = scmd->allowed;
+ } else
scsi_eh_finish_cmd(scmd, &ap->eh_done_q);
- }
}

/* If we have timed out qcs. They belong to EH from
--
1.8.3.1