summaryrefslogtreecommitdiffstats
path: root/sys/isofs
diff options
context:
space:
mode:
authorjoerg <joerg@FreeBSD.org>1997-04-29 17:11:51 +0000
committerjoerg <joerg@FreeBSD.org>1997-04-29 17:11:51 +0000
commit939a1f6d87a9bbf63fbf92964aa5a4d35038aaac (patch)
tree77bf4d680b360de7adc586dabe93c7f728e47537 /sys/isofs
parentaae566870b75a1750d60935043266ae63691a1b4 (diff)
downloadFreeBSD-src-939a1f6d87a9bbf63fbf92964aa5a4d35038aaac.zip
FreeBSD-src-939a1f6d87a9bbf63fbf92964aa5a4d35038aaac.tar.gz
For multi-session CD-ROMs, we have to account for previous sessions as
well in volume_space_size. Otherwise, NFS exports won't work.
Diffstat (limited to 'sys/isofs')
-rw-r--r--sys/isofs/cd9660/cd9660_vfsops.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/isofs/cd9660/cd9660_vfsops.c b/sys/isofs/cd9660/cd9660_vfsops.c
index 764ce6b..a875434 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.22 1997/04/14 18:15:46 phk Exp $
+ * $Id: cd9660_vfsops.c,v 1.23 1997/04/29 15:52:53 joerg Exp $
*/
#include <sys/param.h>
@@ -313,6 +313,15 @@ iso_mountfs(devvp, mp, p, argp)
isonum_733 (high_sierra?
pri_sierra->volume_space_size:
pri->volume_space_size);
+ /*
+ * Since an ISO9660 multi-session CD can also access previous
+ * sessions, we have to include them into the space consider-
+ * ations. This doesn't yield a very accurate number since
+ * parts of the old sessions might be inaccessible now, but we
+ * can't do much better. This is also important for the NFS
+ * filehandle validation.
+ */
+ isomp->volume_space_size += argp->ssector;
bcopy (rootp, isomp->root, sizeof isomp->root);
isomp->root_extent = isonum_733 (rootp->extent);
isomp->root_size = isonum_733 (rootp->size);
OpenPOWER on IntegriCloud