st: clear ILI if Medium Error
Some drives set the ILI flag together with MEDIUM ERROR sense code. Clear the ILI flag in this case so that the medium error will be handled. The problem was reported by Maurizio Lombardi. Signed-off-by: Kai Mäkisara <kai.makisara@kolumbus.fi> Reviewed-by: Laurence Oberman <loberman@redhat.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
Родитель
718924180a
Коммит
5e4fabb6eb
|
@ -1974,9 +1974,12 @@ static long read_tape(struct scsi_tape *STp, long count,
|
|||
transfer = (int)cmdstatp->uremainder64;
|
||||
else
|
||||
transfer = 0;
|
||||
if (STp->block_size == 0 &&
|
||||
cmdstatp->sense_hdr.sense_key == MEDIUM_ERROR)
|
||||
transfer = bytes;
|
||||
if (cmdstatp->sense_hdr.sense_key == MEDIUM_ERROR) {
|
||||
if (STp->block_size == 0)
|
||||
transfer = bytes;
|
||||
/* Some drives set ILI with MEDIUM ERROR */
|
||||
cmdstatp->flags &= ~SENSE_ILI;
|
||||
}
|
||||
|
||||
if (cmdstatp->flags & SENSE_ILI) { /* ILI */
|
||||
if (STp->block_size == 0 &&
|
||||
|
|
Загрузка…
Ссылка в новой задаче