summaryrefslogtreecommitdiffstats
path: root/sys/isofs/cd9660
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>2002-03-30 15:12:57 +0000
committerbde <bde@FreeBSD.org>2002-03-30 15:12:57 +0000
commita9b7c63b296732c9bc02f0f35e74d6c6d58165c3 (patch)
treefe791bc357d13ac95ee46cc3f299fddf14d3cc8e /sys/isofs/cd9660
parent938a0a2eb491ec1b69daf664d6f501b1caaa3606 (diff)
downloadFreeBSD-src-a9b7c63b296732c9bc02f0f35e74d6c6d58165c3.zip
FreeBSD-src-a9b7c63b296732c9bc02f0f35e74d6c6d58165c3.tar.gz
In ffs_mountffs(), set mnt_iosize_max to si_iosize_max unconditionally
provided the latter is nonzero. At this point, the former is a fairly arbitrary default value (DFTPHYS), so changing it to any reasonable value specified by the device driver is safe. Using the maximum of these limits broke ffs clustered i/o for devices whose si_iosize_max is < DFLTPHYS. Using the minimum would break device drivers' ability to increase the active limit from DFTLPHYS up to MAXPHYS. Copied the code for this and the associated (unnecessary?) fixup of mp_iosize_max to all other filesystems that use clustering (ext2fs and msdosfs). It was completely missing. PR: 36309 MFC-after: 1 week
Diffstat (limited to 'sys/isofs/cd9660')
-rw-r--r--sys/isofs/cd9660/cd9660_vfsops.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/isofs/cd9660/cd9660_vfsops.c b/sys/isofs/cd9660/cd9660_vfsops.c
index 8d4db7d..1d9e073 100644
--- a/sys/isofs/cd9660/cd9660_vfsops.c
+++ b/sys/isofs/cd9660/cd9660_vfsops.c
@@ -313,6 +313,10 @@ iso_mountfs(devvp, mp, td, argp)
VOP_UNLOCK(devvp, 0, td);
if (error)
return error;
+ if (devvp->v_rdev->si_iosize_max != 0)
+ mp->mnt_iosize_max = devvp->v_rdev->si_iosize_max;
+ if (mp->mnt_iosize_max > MAXPHYS)
+ mp->mnt_iosize_max = MAXPHYS;
needclose = 1;
OpenPOWER on IntegriCloud