diff options
-rw-r--r-- | drivers/ata/libata-eh.c | 4 | ||||
-rw-r--r-- | drivers/ata/libata-scsi.c | 4 | ||||
-rw-r--r-- | include/linux/libata.h | 1 |
3 files changed, 6 insertions, 3 deletions
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c index 3c6ad7d949c1..8d64f8fd8f1d 100644 --- a/drivers/ata/libata-eh.c +++ b/drivers/ata/libata-eh.c | |||
@@ -1878,7 +1878,9 @@ static void ata_eh_link_report(struct ata_link *link) | |||
1878 | for (tag = 0; tag < ATA_MAX_QUEUE; tag++) { | 1878 | for (tag = 0; tag < ATA_MAX_QUEUE; tag++) { |
1879 | struct ata_queued_cmd *qc = __ata_qc_from_tag(ap, tag); | 1879 | struct ata_queued_cmd *qc = __ata_qc_from_tag(ap, tag); |
1880 | 1880 | ||
1881 | if (!(qc->flags & ATA_QCFLAG_FAILED) || qc->dev->link != link) | 1881 | if (!(qc->flags & ATA_QCFLAG_FAILED) || qc->dev->link != link || |
1882 | ((qc->flags & ATA_QCFLAG_QUIET) && | ||
1883 | qc->err_mask == AC_ERR_DEV)) | ||
1882 | continue; | 1884 | continue; |
1883 | if (qc->flags & ATA_QCFLAG_SENSE_VALID && !qc->err_mask) | 1885 | if (qc->flags & ATA_QCFLAG_SENSE_VALID && !qc->err_mask) |
1884 | continue; | 1886 | continue; |
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c index 6ef5ecb917ce..fc89590d3772 100644 --- a/drivers/ata/libata-scsi.c +++ b/drivers/ata/libata-scsi.c | |||
@@ -2767,8 +2767,8 @@ static unsigned int ata_scsi_pass_thru(struct ata_queued_cmd *qc) | |||
2767 | */ | 2767 | */ |
2768 | qc->nbytes = scsi_bufflen(scmd); | 2768 | qc->nbytes = scsi_bufflen(scmd); |
2769 | 2769 | ||
2770 | /* request result TF */ | 2770 | /* request result TF and be quiet about device error */ |
2771 | qc->flags |= ATA_QCFLAG_RESULT_TF; | 2771 | qc->flags |= ATA_QCFLAG_RESULT_TF | ATA_QCFLAG_QUIET; |
2772 | 2772 | ||
2773 | return 0; | 2773 | return 0; |
2774 | 2774 | ||
diff --git a/include/linux/libata.h b/include/linux/libata.h index 147ccc40c8af..1e277852ba42 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
@@ -221,6 +221,7 @@ enum { | |||
221 | ATA_QCFLAG_IO = (1 << 3), /* standard IO command */ | 221 | ATA_QCFLAG_IO = (1 << 3), /* standard IO command */ |
222 | ATA_QCFLAG_RESULT_TF = (1 << 4), /* result TF requested */ | 222 | ATA_QCFLAG_RESULT_TF = (1 << 4), /* result TF requested */ |
223 | ATA_QCFLAG_CLEAR_EXCL = (1 << 5), /* clear excl_link on completion */ | 223 | ATA_QCFLAG_CLEAR_EXCL = (1 << 5), /* clear excl_link on completion */ |
224 | ATA_QCFLAG_QUIET = (1 << 6), /* don't report device error */ | ||
224 | 225 | ||
225 | ATA_QCFLAG_FAILED = (1 << 16), /* cmd failed and is owned by EH */ | 226 | ATA_QCFLAG_FAILED = (1 << 16), /* cmd failed and is owned by EH */ |
226 | ATA_QCFLAG_SENSE_VALID = (1 << 17), /* sense data valid */ | 227 | ATA_QCFLAG_SENSE_VALID = (1 << 17), /* sense data valid */ |