From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pat LaVarre Subject: Re: [PATCH] fix cdrom mt rainier probe Date: 14 Jul 2004 17:34:42 -0600 Sender: linux-scsi-owner@vger.kernel.org Message-ID: <1089848082.3736.21.camel@patibmrh9> References: <1089741428.3806.3.camel@patibmrh9><1089752141.3786.3.camel@pati bmrh9> <20040714054133.GI3055@suse.de> Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit Return-path: Received: from email-out1.iomega.com ([147.178.1.82]:1430 "EHLO email.iomega.com") by vger.kernel.org with ESMTP id S265065AbUGNXeq (ORCPT ); Wed, 14 Jul 2004 19:34:46 -0400 In-Reply-To: <20040714054133.GI3055@suse.de> List-Id: linux-scsi@vger.kernel.org To: Jens Axboe Cc: linux-scsi@vger.kernel.org Jens A: > > --- linux-2.6.8-rc1/drivers/ide/ide-cd.c 2004-07-13 08:26:05.000000000 -0600 > > +++ linux-2.6.8-rc1-pel/drivers/ide/ide-cd.c 2004-07-13 14:33:40.000000000 -0600 > > @@ -3251,6 +3251,7 @@ int ide_cdrom_setup (ide_drive_t *drive) > > * set correct block size and read-only for non-ram media > > */ > > set_disk_ro(drive->disk, !CDROM_CONFIG_FLAGS(drive)->ram); > > + set_disk_ro(drive->disk, 0); > > Trace that backwards and find out why ->ram isn't getting set. An answer to that helpfully concrete question is: 2.6.8-rc1 differs from 2.6.7 by lacking the three-line patch below. Back in the ide_cdrom_probe_capabilities of 2.6.7, we were saying any drive that offered "feature" x0020 "Random Writable" was set_disk_ro rewritable. Now in 2.6.8-rc1 we accept only: cap.dvd_ram_write || (drive->media == ide_optical) That criterion denies the rewritability of the drive I'm testing i.e. the "Iomega" "RRD" drive. I'd like Linux to perceive the reality that RRD discs are as rewritable as DVD RAM discs are - can I help further? Pat LaVarre --- linux-2.6.8-rc1/drivers/ide/ide-cd.c 2004-07-13 08:26:05.000000000 -0600 +++ linux-2.6.8-rc1-pel/drivers/ide/ide-cd.c 2004-07-14 17:00:28.000000000 -0600 @@ -2925,7 +2925,7 @@ int ide_cdrom_probe_capabilities (ide_dr struct cdrom_info *info = drive->driver_data; struct cdrom_device_info *cdi = &info->devinfo; struct atapi_capabilities_page cap; - int nslots = 1; + int nslots = 1, ram_write = 0; if (drive->media == ide_optical) { CDROM_CONFIG_FLAGS(drive)->mo_drive = 1; @@ -2954,6 +2954,10 @@ int ide_cdrom_probe_capabilities (ide_dr if (ide_cdrom_get_capabilities(drive, &cap)) return 0; + if (!cdrom_is_random_writable(cdi, &ram_write)) + if (ram_write) + CDROM_CONFIG_FLAGS(drive)->ram = 1; + if (cap.lock == 0) CDROM_CONFIG_FLAGS(drive)->no_doorlock = 1; if (cap.eject)