diff options
author | joerg <joerg@FreeBSD.org> | 1997-04-29 15:52:53 +0000 |
---|---|---|
committer | joerg <joerg@FreeBSD.org> | 1997-04-29 15:52:53 +0000 |
commit | 57e93106aa9f89b04e44d5b1042cfae84541c5d2 (patch) | |
tree | 804e7170f9ead9a95189d0ac289b76202260faea /sys/isofs | |
parent | 55c9dac45043b0c4199aaca4735cfa1d01b209e5 (diff) | |
download | FreeBSD-src-57e93106aa9f89b04e44d5b1042cfae84541c5d2.zip FreeBSD-src-57e93106aa9f89b04e44d5b1042cfae84541c5d2.tar.gz |
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?
Diffstat (limited to 'sys/isofs')
-rw-r--r-- | sys/isofs/cd9660/cd9660_mount.h | 1 | ||||
-rw-r--r-- | sys/isofs/cd9660/cd9660_vfsops.c | 6 |
2 files changed, 5 insertions, 2 deletions
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 <sys/param.h> @@ -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; |