From: "Steven J. Hill" <sjhill@realitydiluted.com>
To: linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org
Subject: [PATCH] 2.6.2, Partition support for SCSI CDROM...
Date: Sun, 22 Feb 2004 21:11:00 -0500 [thread overview]
Message-ID: <40396134.6030906@realitydiluted.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 282 bytes --]
Greetings.
This patch enables support for CDROMs that have partitions on
them, like say SGI and SUN media. It was sent to me by Christoph
Hellwig and then I cleaned it up a bit. I am posting it more
for flamebait^Wcomments to see if people are comfortable with it.
Thanks.
-Steve
[-- Attachment #2: scsi-sr-partitions-2.6.2.patch --]
[-- Type: text/x-patch, Size: 3157 bytes --]
diff -urN linux-2.6.2/drivers/scsi/Kconfig linux-2.6.2-patched/drivers/scsi/Kconfig
--- linux-2.6.2/drivers/scsi/Kconfig 2004-02-22 20:15:07.000000000 -0500
+++ linux-2.6.2-patched/drivers/scsi/Kconfig 2004-02-08 20:29:04.000000000 -0500
@@ -112,6 +112,48 @@
drives (and HP Writers). If you have such a drive and get the first
session only, try saying Y here; everybody else says N.
+config BLK_DEV_SR_PARTITIONS
+ bool "Enable partitions (for SCSI CDROM)"
+ depends on BLK_DEV_SR
+ help
+ This enables the utilisation of partitions on CDs, usually
+ media from SGI or Sun. You must enable "SGI partition support"
+ and/or "Sun partition tables support" to be able to see their
+ respective CD partitions. Also make sure to say Y or M to
+ "EFS file system support" and "UFS file system support" to
+ support reading of SGI and Sun filesystems.
+
+ If you want to this feature, say Y here; everybody else will
+ most likely say N.
+
+config BLK_DEV_SR_PARTITIONS_PER_DEVICE
+ int "Number of paritions supported per SCSI CDROM device"
+ depends on BLK_DEV_SR_PARTITIONS
+ default "0"
+ help
+ The number of partitions supported per SCSI CDROM device. If
+ the value chosen was 7, you will have the following device
+ node mappings:
+
+ sr0 - first CDROM, whole disk
+ sr1 - first CDROM, first partition
+
+ [...]
+
+ sr7 - first CDROM, seventh partition
+ sr8 - second CDROM, whole disk
+ sr9 - second CDROM, first partition
+
+ [...]
+
+ You made need to create additional device nodes depending on
+ the number of partitions and SCSI CDROM devices you have in
+ your system.
+
+ If SCSI CDROM support is compiled as a module, you can specify
+ how many partitions you want when you insert the module which
+ will override this default value.
+
config CHR_DEV_SG
tristate "SCSI generic support"
depends on SCSI
diff -urN linux-2.6.2/drivers/scsi/sr.c linux-2.6.2-patched/drivers/scsi/sr.c
--- linux-2.6.2/drivers/scsi/sr.c 2004-02-22 20:15:08.000000000 -0500
+++ linux-2.6.2-patched/drivers/scsi/sr.c 2004-02-08 20:31:52.000000000 -0500
@@ -55,6 +55,13 @@
#include "scsi_logging.h"
#include "sr.h"
+#ifdef CONFIG_BLK_DEV_SR_PARTITIONS
+static int partitions = CONFIG_BLK_DEV_SR_PARTITIONS_PER_DEVICE;
+MODULE_PARM(partitions, "i");
+MODULE_PARM_DESC(partitions, "number of SCSI CDROM partitions to support");
+#else
+static int partitions = 0;
+#endif
MODULE_PARM(xa_test, "i"); /* see sr_ioctl.c */
@@ -518,7 +525,7 @@
goto fail;
memset(cd, 0, sizeof(*cd));
- disk = alloc_disk(1);
+ disk = alloc_disk(partitions + 1);
if (!disk)
goto fail_free;
@@ -533,7 +540,7 @@
spin_unlock(&sr_index_lock);
disk->major = SCSI_CDROM_MAJOR;
- disk->first_minor = minor;
+ disk->first_minor = minor * (partitions + 1);
sprintf(disk->disk_name, "sr%d", minor);
disk->fops = &sr_bdops;
disk->flags = GENHD_FL_CD;
@@ -868,6 +875,12 @@
{
int rc;
+#ifdef MODULE
+ /* Check number of partitions specified. */
+ if (partitions < 0)
+ partitions = 0;
+#endif
+
rc = register_blkdev(SCSI_CDROM_MAJOR, "sr");
if (rc)
return rc;
next reply other threads:[~2004-02-23 2:11 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-02-23 2:11 Steven J. Hill [this message]
2004-02-23 3:00 ` [PATCH] 2.6.2, Partition support for SCSI CDROM Andrew Morton
2004-02-23 3:07 ` Steven J. Hill
2004-02-23 3:13 ` Andrew Morton
2004-02-24 6:11 ` Jeremy Higdon
2004-02-24 16:51 ` Steven J. Hill
2004-02-24 17:06 ` Christoph Hellwig
2004-02-26 22:51 ` Rusty Russell
2004-02-24 17:09 ` Matthew Wilcox
2004-02-25 1:58 ` Miles Bader
2004-02-25 10:19 ` Andries Brouwer
2004-02-27 3:22 ` Bill Davidsen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=40396134.6030906@realitydiluted.com \
--to=sjhill@realitydiluted.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox