|
@@ -862,10 +862,16 @@ static void get_capabilities(struct scsi_cd *cd)
|
|
static int sr_packet(struct cdrom_device_info *cdi,
|
|
static int sr_packet(struct cdrom_device_info *cdi,
|
|
struct packet_command *cgc)
|
|
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)
|
|
if (cgc->timeout <= 0)
|
|
cgc->timeout = IOCTL_TIMEOUT;
|
|
cgc->timeout = IOCTL_TIMEOUT;
|
|
|
|
|
|
- sr_do_ioctl(cdi->handle, cgc);
|
|
|
|
|
|
+ sr_do_ioctl(cd, cgc);
|
|
|
|
|
|
return cgc->stat;
|
|
return cgc->stat;
|
|
}
|
|
}
|