From 044d24e32598b0cacc9d7832c9d3db87d8c4044d Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Fri, 1 Oct 2010 14:20:08 -0700 Subject: [PATCH] --- yaml --- r: 213625 b: refs/heads/master c: 8e04d8056c1ea0e0aab730994b74756f0526cda8 h: refs/heads/master i: 213623: 4f9dc1a76c4700a33684caaf88579628b6da0d82 v: v3 --- [refs] | 2 +- trunk/drivers/scsi/sr.c | 8 +++++++- trunk/include/scsi/scsi_device.h | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 59e55bc03b32..bd07c28fb91c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 319feaabb6c7ccd90da6e3207563c265da7d21ae +refs/heads/master: 8e04d8056c1ea0e0aab730994b74756f0526cda8 diff --git a/trunk/drivers/scsi/sr.c b/trunk/drivers/scsi/sr.c index ba9c3e0387ce..b811dd0eb240 100644 --- a/trunk/drivers/scsi/sr.c +++ b/trunk/drivers/scsi/sr.c @@ -862,10 +862,16 @@ static void get_capabilities(struct scsi_cd *cd) static int sr_packet(struct cdrom_device_info *cdi, struct packet_command *cgc) { + struct scsi_cd *cd = cdi->handle; + struct scsi_device *sdev = cd->device; + + if (cgc->cmd[0] == GPCMD_READ_DISC_INFO && sdev->no_read_disc_info) + return -EDRIVE_CANT_DO_THIS; + if (cgc->timeout <= 0) cgc->timeout = IOCTL_TIMEOUT; - sr_do_ioctl(cdi->handle, cgc); + sr_do_ioctl(cd, cgc); return cgc->stat; } diff --git a/trunk/include/scsi/scsi_device.h b/trunk/include/scsi/scsi_device.h index 50cb34ffef11..e8c2433ad8a8 100644 --- a/trunk/include/scsi/scsi_device.h +++ b/trunk/include/scsi/scsi_device.h @@ -148,6 +148,7 @@ struct scsi_device { unsigned retry_hwerror:1; /* Retry HARDWARE_ERROR */ unsigned last_sector_bug:1; /* do not use multisector accesses on SD_LAST_BUGGY_SECTORS */ + unsigned no_read_disc_info:1; /* Avoid READ_DISC_INFO cmds */ unsigned is_visible:1; /* is the device visible in sysfs */ DECLARE_BITMAP(supported_events, SDEV_EVT_MAXBITS); /* supported events */