From 57e93106aa9f89b04e44d5b1042cfae84541c5d2 Mon Sep 17 00:00:00 2001 From: joerg Date: Tue, 29 Apr 1997 15:52:53 +0000 Subject: Add support for ISO9660 multi-session CD-ROMs. This is just nothing but searching the directory on something else than the default location. NB: this comprises an interface change to the mount_cd9660(8) utility (commit will follow). You need to rebuild both. I've got similar patches for RELENG_2_2, should i commit them too? --- sys/fs/cd9660/cd9660_mount.h | 1 + sys/fs/cd9660/cd9660_vfsops.c | 6 ++++-- sys/isofs/cd9660/cd9660_mount.h | 1 + sys/isofs/cd9660/cd9660_vfsops.c | 6 ++++-- 4 files changed, 10 insertions(+), 4 deletions(-) (limited to 'sys') diff --git a/sys/fs/cd9660/cd9660_mount.h b/sys/fs/cd9660/cd9660_mount.h index ea6ecaa..9d3f78e 100644 --- a/sys/fs/cd9660/cd9660_mount.h +++ b/sys/fs/cd9660/cd9660_mount.h @@ -45,6 +45,7 @@ struct iso_args { char *fspec; /* block special device to mount */ struct export_args export; /* network export info */ int flags; /* mounting flags, see below */ + int ssector; /* starting sector, 0 for 1st session */ }; #define ISOFSMNT_NORRIP 0x00000001 /* disable Rock Ridge Ext.*/ #define ISOFSMNT_GENS 0x00000002 /* enable generation numbers */ diff --git a/sys/fs/cd9660/cd9660_vfsops.c b/sys/fs/cd9660/cd9660_vfsops.c index e8712dc..764ce6b 100644 --- a/sys/fs/cd9660/cd9660_vfsops.c +++ b/sys/fs/cd9660/cd9660_vfsops.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)cd9660_vfsops.c 8.18 (Berkeley) 5/22/95 - * $Id: cd9660_vfsops.c,v 1.21 1997/03/24 11:24:32 bde Exp $ + * $Id: cd9660_vfsops.c,v 1.22 1997/04/14 18:15:46 phk Exp $ */ #include @@ -255,7 +255,9 @@ iso_mountfs(devvp, mp, p, argp) */ iso_bsize = ISO_DEFAULT_BLOCK_SIZE; - for (iso_blknum = 16; iso_blknum < 100; iso_blknum++) { + for (iso_blknum = 16 + argp->ssector; + iso_blknum < 100 + argp->ssector; + iso_blknum++) { if (error = bread(devvp, iso_blknum * btodb(iso_bsize), iso_bsize, NOCRED, &bp)) goto out; diff --git a/sys/isofs/cd9660/cd9660_mount.h b/sys/isofs/cd9660/cd9660_mount.h index ea6ecaa..9d3f78e 100644 --- a/sys/isofs/cd9660/cd9660_mount.h +++ b/sys/isofs/cd9660/cd9660_mount.h @@ -45,6 +45,7 @@ struct iso_args { char *fspec; /* block special device to mount */ struct export_args export; /* network export info */ int flags; /* mounting flags, see below */ + int ssector; /* starting sector, 0 for 1st session */ }; #define ISOFSMNT_NORRIP 0x00000001 /* disable Rock Ridge Ext.*/ #define ISOFSMNT_GENS 0x00000002 /* enable generation numbers */ diff --git a/sys/isofs/cd9660/cd9660_vfsops.c b/sys/isofs/cd9660/cd9660_vfsops.c index e8712dc..764ce6b 100644 --- a/sys/isofs/cd9660/cd9660_vfsops.c +++ b/sys/isofs/cd9660/cd9660_vfsops.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)cd9660_vfsops.c 8.18 (Berkeley) 5/22/95 - * $Id: cd9660_vfsops.c,v 1.21 1997/03/24 11:24:32 bde Exp $ + * $Id: cd9660_vfsops.c,v 1.22 1997/04/14 18:15:46 phk Exp $ */ #include @@ -255,7 +255,9 @@ iso_mountfs(devvp, mp, p, argp) */ iso_bsize = ISO_DEFAULT_BLOCK_SIZE; - for (iso_blknum = 16; iso_blknum < 100; iso_blknum++) { + for (iso_blknum = 16 + argp->ssector; + iso_blknum < 100 + argp->ssector; + iso_blknum++) { if (error = bread(devvp, iso_blknum * btodb(iso_bsize), iso_bsize, NOCRED, &bp)) goto out; -- cgit v1.1