Commit e4c26a1b authored by Niklas Cassel's avatar Niklas Cassel Committed by Damien Le Moal

ata: libata-eh: Clarify ata_eh_qc_retry() behavior at call site

While the function documentation for ata_eh_qc_retry() is clear,
from simply reading the single function that calls ata_eh_qc_retry(),
it is not clear that ata_eh_qc_retry() might not retry the command.

Add a comment in the single function that calls ata_eh_qc_retry() to
clarify the behavior.

[Damien] Added curly braces to "if () else" with multi-line comment.
Signed-off-by: default avatarNiklas Cassel <niklas.cassel@wdc.com>
Signed-off-by: default avatarDamien Le Moal <dlemoal@kernel.org>
parent a5ae12c8
...@@ -3813,16 +3813,29 @@ void ata_eh_finish(struct ata_port *ap) ...@@ -3813,16 +3813,29 @@ void ata_eh_finish(struct ata_port *ap)
* generate sense data in this function, * generate sense data in this function,
* considering both err_mask and tf. * considering both err_mask and tf.
*/ */
if (qc->flags & ATA_QCFLAG_RETRY) if (qc->flags & ATA_QCFLAG_RETRY) {
/*
* Since qc->err_mask is set, ata_eh_qc_retry()
* will not increment scmd->allowed, so upper
* layer will only retry the command if it has
* not already been retried too many times.
*/
ata_eh_qc_retry(qc); ata_eh_qc_retry(qc);
else } else {
ata_eh_qc_complete(qc); ata_eh_qc_complete(qc);
}
} else { } else {
if (qc->flags & ATA_QCFLAG_SENSE_VALID) { if (qc->flags & ATA_QCFLAG_SENSE_VALID) {
ata_eh_qc_complete(qc); ata_eh_qc_complete(qc);
} else { } else {
/* feed zero TF to sense generation */ /* feed zero TF to sense generation */
memset(&qc->result_tf, 0, sizeof(qc->result_tf)); memset(&qc->result_tf, 0, sizeof(qc->result_tf));
/*
* Since qc->err_mask is not set,
* ata_eh_qc_retry() will increment
* scmd->allowed, so upper layer is guaranteed
* to retry the command.
*/
ata_eh_qc_retry(qc); ata_eh_qc_retry(qc);
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment