multi volume isofs diffs

Marty Leisner (leisner@sdsp.mc.xerox.com)
Thu, 25 Apr 1996 13:03:36 PDT


I would really like to get this in to read the Prime-time freeware 4.2
(and other multi volume disks).

The changes basically discard a check (I haven't found bad behavior
we it).

--- fs/isofs/inode.c 1996/04/23 04:18:14 1.1
+++ fs/isofs/inode.c 1996/04/23 04:18:38
@@ -25,6 +25,7 @@
#include <asm/system.h>
#include <asm/segment.h>

+#define MULTI_VOLUME
#ifdef LEAK_CHECK
static int check_malloc = 0;
static int check_bread = 0;
@@ -306,8 +307,10 @@
if(high_sierra){
rootp = (struct iso_directory_record *) h_pri->root_directory_record;
if (isonum_723 (h_pri->volume_set_size) != 1) {
+#ifndef MULTI_VOLUME
printk("Multi-volume disks not (yet) supported.\n");
goto out;
+#endif
};
s->u.isofs_sb.s_nzones = isonum_733 (h_pri->volume_space_size);
s->u.isofs_sb.s_log_zone_size = isonum_723 (h_pri->logical_block_size);
@@ -315,8 +318,10 @@
} else {
rootp = (struct iso_directory_record *) pri->root_directory_record;
if (isonum_723 (pri->volume_set_size) != 1) {
+#ifndef MULTI_VOLUME
printk("Multi-volume disks not (yet) supported.\n");
goto out;
+#endif
};
s->u.isofs_sb.s_nzones = isonum_733 (pri->volume_space_size);
s->u.isofs_sb.s_log_zone_size = isonum_723 (pri->logical_block_size);
@@ -614,10 +619,13 @@
inode->i_sb->u.isofs_sb.s_cruft = 'y';
}

+#ifndef MULTI_VOLUME
if (inode->i_sb->u.isofs_sb.s_cruft != 'y' &&
(volume_seq_no != 0) && (volume_seq_no != 1)) {
printk("Multi volume CD somehow got mounted.\n");
- } else {
+ } else
+#endif
+ {
if (S_ISREG(inode->i_mode))
inode->i_op = &isofs_file_inode_operations;
else if (S_ISDIR(inode->i_mode))
marty leisner@sdsp.mc.xerox.com
Member of the League for Programming Freedom (http://www.lpf.org)
Any sufficiently advanced technology is indistinguishable from magic
Arthur C. Clarke, The Lost Worlds of 2001