[SCSI] permit READ DEFECT DATA in block/scsi_ioctl

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.

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

Signed-off-by: Douglas Gilbert <dougg@torque.net>
Acked-by: Jens Axboe <axboe@suse.de>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>

authored by

Douglas Gilbert and committed by
James Bottomley
942fc2fb 1c8e71d7

+1
+1
drivers/block/scsi_ioctl.c
··· 123 123 safe_for_read(READ_12), 124 124 safe_for_read(READ_16), 125 125 safe_for_read(READ_BUFFER), 126 + safe_for_read(READ_DEFECT_DATA), 126 127 safe_for_read(READ_LONG), 127 128 safe_for_read(INQUIRY), 128 129 safe_for_read(MODE_SENSE),