ata: libata: Fix scsi_done() documentation

In 2008 the SCSI core was converted to use the block layer timeout
infrastructure instead of its own infrastructure (see also patch
"block: unify request timeout handling"). Since then, calling
scsi_done() while SCSI host recovery is in progress has no effect.
Originally the REQ_ATOM_COMPLETE flag was used to prevent double
completions. Today the SCMD_STATE_COMPLETE flag is used to prevent
double completions.

Instead of mentioning that calling scsi_done() is not allowed while
host recovery is in progress, mention that it has no effect.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Link: https://lore.kernel.org/r/291519238580d795929d44437f3c863403d14e1f.1790359497.git.bvanassche@acm.org
Signed-off-by: Niklas Cassel <cassel@kernel.org>
This commit is contained in:
Bart Van Assche 2026-09-25 11:05:43 -07:00 committed by Niklas Cassel
parent 6b28e0e7a0
commit cfce1dc635

View File

@ -524,8 +524,8 @@ EH will know to handle it later. Then it calls low level libata driver's
:c:func:`error_handler` callback.
When the :c:func:`error_handler` callback is invoked it stops BMDMA and
completes the qc. Note that as we're currently in EH, we cannot call
scsi_done. As described in SCSI EH doc, a recovered scmd should be
completes the qc. Note that as we're currently in EH, scsi_done() has
no effect. As described in SCSI EH doc, a recovered scmd should be
either retried with :c:func:`scsi_queue_insert` or finished with
:c:func:`scsi_finish_command`. Here, we override ``qc->scsidone`` with
:c:func:`scsi_finish_command` and calls :c:func:`ata_qc_complete`.