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: 13+ 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-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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.