From a9b7c63b296732c9bc02f0f35e74d6c6d58165c3 Mon Sep 17 00:00:00 2001 From: bde Date: Sat, 30 Mar 2002 15:12:57 +0000 Subject: 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 --- sys/isofs/cd9660/cd9660_vfsops.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'sys/isofs/cd9660') 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; -- cgit v1.1