[PATCH] permit READ DEFECT DATA in block/scsi_ioctl

From: Douglas Gilbert
Date: Fri Sep 09 2005 - 05:07:42 EST


The soon to be released smartmontools 5.34 uses the
READ DEFECT DATA command on SCSI disks. A disk that
has defect list entries (or worse, an increasing number
of them) is at risk.

Currently the first invocation of smartctl causes this:
scsi: unknown opcode 0x37
message to appear the console and in the log.

The READ DEFECT DATA SCSI command does not change
the state of a disk. Its opcode (0x37) is valid for
SBC devices (e.g. disks) and SMC-2 devices (media
changers) where it is called INITIALIZE STATUS ELEMENT
WITH RANGE and again doesn't change the external state
of the device.

The patch is against lk 2.6.13 .

Changelog:
- mark SCSI opcode 0x37 (READ DEFECT DATA) as
safe_for_read

Signed-off-by: Douglas Gilbert <dougg@xxxxxxxxxx>

Doug Gilbert

--- linux/drivers/block/scsi_ioctl.c 2005-06-19 07:54:59.000000000 +1000
+++ linux/drivers/block/scsi_ioctl.c2613rdd 2005-09-09 17:21:52.000000000 +1000
@@ -123,6 +123,7 @@
safe_for_read(READ_12),
safe_for_read(READ_16),
safe_for_read(READ_BUFFER),
+ safe_for_read(READ_DEFECT_DATA),
safe_for_read(READ_LONG),
safe_for_read(INQUIRY),
safe_for_read(MODE_SENSE),