summaryrefslogtreecommitdiff
path: root/sys/isofs
diff options
context:
space:
mode:
authorPedro Martelletto <pedro@cvs.openbsd.org>2007-03-25 10:20:51 +0000
committerPedro Martelletto <pedro@cvs.openbsd.org>2007-03-25 10:20:51 +0000
commitd86215db870c08230fc11eb10b0e769ebe079822 (patch)
tree1df37219bbe7b5d3c329b9b874f47f8b721b2f8e /sys/isofs
parent4381160c5ac0b1946d2b26b4adcff02a55080bd1 (diff)
Account for the space of all the previous sessions on disk when
mounting a multisession CD, as they may be accessed as well. From FreeBSD via Enache Adrian, okay krw@ thib@ tedu@.
Diffstat (limited to 'sys/isofs')
-rw-r--r--sys/isofs/cd9660/cd9660_vfsops.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/isofs/cd9660/cd9660_vfsops.c b/sys/isofs/cd9660/cd9660_vfsops.c
index ed51eaf31cb..4a322f89877 100644
--- a/sys/isofs/cd9660/cd9660_vfsops.c
+++ b/sys/isofs/cd9660/cd9660_vfsops.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cd9660_vfsops.c,v 1.43 2007/03/21 13:44:04 pedro Exp $ */
+/* $OpenBSD: cd9660_vfsops.c,v 1.44 2007/03/25 10:20:50 pedro Exp $ */
/* $NetBSD: cd9660_vfsops.c,v 1.26 1997/06/13 15:38:58 pk Exp $ */
/*-
@@ -359,7 +359,11 @@ iso_mountfs(devvp, mp, p, argp)
isomp->root_extent = isonum_733 (rootp->extent);
isomp->root_size = isonum_733 (rootp->size);
isomp->joliet_level = 0;
-
+ /*
+ * Since an ISO9660 multi-session CD can also access previous sessions,
+ * we have to include them into the space considerations.
+ */
+ isomp->volume_space_size += sess;
isomp->im_bmask = logical_block_size - 1;
isomp->im_bshift = ffs(logical_block_size) - 1;