• Gwendal Grignou's avatar
    libata: make ata_eh_qc_retry() bump scmd->allowed on bogus failures · f13e2201
    Gwendal Grignou authored
    libata EH decrements scmd->retries when the command failed for reasons
    unrelated to the command itself so that, for example, commands aborted
    due to suspend / resume cycle don't get penalized; however,
    decrementing scmd->retries isn't enough for ATA passthrough commands.
    
    Without this fix, ATA passthrough commands are not resend to the
    drive, and no error is signalled to the caller because:
    
    - allowed retry count is 1
    - ata_eh_qc_complete fill the sense data, so result is valid
    - sense data is filled with untouched ATA registers.
    Signed-off-by: default avatarGwendal Grignou <gwendal@google.com>
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Cc: stable@vger.kernel.org
    f13e2201
libata-eh.c 108 KB