Re: [PATCH] st: clear ILI if Medium Error
> "Kai" == Kai Makisara writes: Kai> Some drives set the ILI flag together with MEDIUM ERROR sense Kai> code. Clear the ILI flag in this case so that the medium error will Kai> be handled. The problem was reported by Maurizio Lombardi. Applied to 4.7/scsi-queue. -- Martin K. Petersen Oracle Linux Engineering -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] st: clear ILI if Medium Error
Looks good Reviewed-by Laurence Oberman Laurence Oberman Principal Software Maintenance Engineer Red Hat Global Support Services - Original Message - From: "Kai Makisara" To: linux-scsi@vger.kernel.org Cc: mlomb...@redhat.com Sent: Monday, April 18, 2016 1:47:18 AM Subject: [PATCH] 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 --- drivers/scsi/st.c |9 ++--- 1 file changed, 6 insertions(+), 3 deletions(-) --- a/drivers/scsi/st.c 2016-04-17 21:22:15.671897001 +0300 +++ b/drivers/scsi/st.c 2016-04-17 22:25:39.234321293 +0300 @@ -1974,9 +1974,12 @@ static long read_tape(struct scsi_tape * 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 && -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] 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 --- drivers/scsi/st.c |9 ++--- 1 file changed, 6 insertions(+), 3 deletions(-) --- a/drivers/scsi/st.c 2016-04-17 21:22:15.671897001 +0300 +++ b/drivers/scsi/st.c 2016-04-17 22:25:39.234321293 +0300 @@ -1974,9 +1974,12 @@ static long read_tape(struct scsi_tape * 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 &&