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: Niklas Cassel <niklas.cassel@wdc.com> Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
This commit is contained in:
committed by
Damien Le Moal
parent
a5ae12c87d
commit
e4c26a1b74
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user