From mboxrd@z Thu Jan 1 00:00:00 1970
From: Pat LaVarre
Subject: writable mmc profiles actually are writable
Date: 06 Oct 2003 12:12:26 -0600
Sender: linux-scsi-owner@vger.kernel.org
Message-ID: <1065463946.5185.8.camel@patehci2>
References: <1064271322.4797.9.camel@patehci2>
<1064847281.24854.2.camel@patehci2> <1064850600.25057.7.camel@patehci2>
<20030929164654.GS15415@suse.de> <1064855570.3184.3.camel@patehci2>
<1064865746.4262.63.camel@patehci2> <1065460336.10804.1.camel@patehci2>
Mime-Version: 1.0
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
Return-path:
Received: from email-out2.iomega.com ([147.178.1.83]:35525 "EHLO
email.iomega.com") by vger.kernel.org with ESMTP id S264014AbTJFSMg
(ORCPT );
Mon, 6 Oct 2003 14:12:36 -0400
Received: from royntex01.iomegacorp.com (unknown [147.178.90.120])
by email.iomega.com (Postfix) with ESMTP id EC6F81890
for ; Mon, 6 Oct 2003 12:12:34 -0600 (MDT)
In-Reply-To: <1065460336.10804.1.camel@patehci2>
List-Id: linux-scsi@vger.kernel.org
To: linux-scsi@vger.kernel.org
> Newsgroups: mlist.linux.scsi
> Date: 2003-09-10 16:00:27 PST
> Subject: Re: [PATCH] mount -w of dvd+rw etc. in vanilla 2.6
> From: Patrick Mansfield (patmans@us.ibm.com)
>
> Should sd.c and sr.c be calling set_device_ro?
> (after adding a read only block device, or
> changing back to read/write)?
That good question stands open, I think.
The following inline plain text, now revved for -test6 & posted here,
allows modprobe to overcome such uncooperative attitudes as:
$ sudo dd if=/dev/scd2 bs=2k count=1 | wc
1+0 records in
1+0 records out
0 0 2048
$
$ sudo dd of=/dev/scd2 bs=2k count=1 if=/dev/zero
dd: opening `/dev/scd2': Read-only file system
$
Allowing dd, mkudffs, etc. are the good consequences. The evil
consequences I do not yet know. I do notice we have achieved
writability without extending the enumeration that `cat
/proc/sys/dev/cdrom/info` dumps:
Can write CD-R: 0
Can write CD-RW: 0
Can read DVD: 0
Can write DVD-R: 0
Can write DVD-RAM: 0
Pat LaVarre
diff -ur linux-2.6.0-test6/drivers/cdrom/cdrom.c linux/drivers/cdrom/cdrom.c
--- linux-2.6.0-test6/drivers/cdrom/cdrom.c 2003-09-27 18:50:10.000000000 -0600
+++ linux/drivers/cdrom/cdrom.c 2003-10-06 11:53:41.826299728 -0600
@@ -426,8 +426,8 @@
if ((fp->f_flags & O_NONBLOCK) && (cdi->options & CDO_USE_FFLAGS))
ret = cdi->ops->open(cdi, 1);
else {
- if ((fp->f_mode & FMODE_WRITE) && !CDROM_CAN(CDC_DVD_RAM))
- return -EROFS;
+// if ((fp->f_mode & FMODE_WRITE) && !CDROM_CAN(CDC_DVD_RAM))
+// return -EROFS;
ret = open_for_data(cdi);
}
diff -ur linux-2.6.0-test6/drivers/scsi/sr.c linux/drivers/scsi/sr.c
--- linux-2.6.0-test6/drivers/scsi/sr.c 2003-09-27 18:50:13.000000000 -0600
+++ linux/drivers/scsi/sr.c 2003-10-06 11:51:59.655832000 -0600
@@ -327,8 +327,8 @@
}
if (rq_data_dir(SCpnt->request) == WRITE) {
- if (!cd->device->writeable)
- return 0;
+// if (!cd->device->writeable)
+// return 0;
SCpnt->cmnd[0] = WRITE_10;
SCpnt->sc_data_direction = SCSI_DATA_WRITE;
} else if (rq_data_dir(SCpnt->request) == READ) {