On Wed, 2018-02-21 at 20:48 -0500, Douglas Gilbert wrote:
> + if (result) {
> + if (sense_valid && (sshdr.sense_key == RECOVERED_ERROR)) {
> + /* if ATA PASS-THROUGH INFORMATION AVAILABLE skip
> + * print since caller wants ATA registers. Only occurs
> + * on SCSI ATA PASS_THROUGH commands when CK_COND=1
> + */
> + if ((sshdr.asc == 0x0) && (sshdr.ascq == 0x1d))
> + ;
> + else if (!(req->rq_flags & RQF_QUIET))
> + scsi_print_sense(cmd);
> + result = 0;
> + /* for passthrough error may be set */
> + error = BLK_STS_OK;
> + /*
> + * Another corner case: the SCSI status byte is non-zero but 'good'.
> + * Example: PRE-FETCH command returns SAM_STAT_CONDITION_MET when
> + * it is able to fit nominated LBs in its cache (and SAM_STAT_GOOD
> + * if it can't fit). Treat SAM_STAT_CONDITION_MET and the related
> + * intermediate statuses (both obsolete in SAM-4) as good.
> + */
> + } else if (status_byte(result) &&
> + scsi_status_is_good(result)) {
> + result = 0;
> + /* for passthrough error may be set */
> + error = BLK_STS_OK;
> + }
> }
Please move the new comment block under "} else if" and indent it further to
the right such that neither gcc with W=1 nor smatch complain about incorrect
indentation.
Please also change the branching logic as follows to keep the indentation level
low:
if (sense_valid && (sshdr.sense_key == RECOVERED_ERROR)) {
[ ... ]
} else if (status_byte(result) && scsi_status_is_good(result)) {
[ ... ]
}
Thanks,
Bart.