On Sat, Jun 17, 2017 at 10:35:13AM -0700, Guenter Roeck wrote: > Various 32 builds fail with error messages such as > > ERROR: "__udivdi3" [fs/ufs/ufs.ko] undefined! > > due to a variable type change from 32 bit to 64 bit.
Actually, that's not the only problem in that place. The breakage came in 2.4.14.7; the critical part was this: default: - usb1->fs_optim = SWAB32(UFS_OPTTIME); + usb1->fs_optim = cpu_to_fs32(sb, UFS_OPTTIME); case UFS_OPTTIME: request = uspi->s_fpb; - if (SWAB32(usb1->fs_cstotal.cs_nffree) < uspi->s_dsize * + if (fs32_to_cpu(sb, usb1->fs_cstotal.cs_nffree) < uspi->s_dsize * (uspi->s_minfree - 2) / 100) break; - usb1->fs_optim = SWAB32(UFS_OPTSPACE); + usb1->fs_optim = cpu_to_fs32(sb, UFS_OPTTIME); break; See the problem? Instead of hysteresis loop flipping between optspace and opttime allocation policies, it *never* switches out of opttime. That came in commit 6293d56ca18db9ed322b2a5550ac7b27bd538cff Author: Linus Torvalds <torva...@athlon.transmeta.com> Date: Mon Feb 4 20:33:51 2002 -0800 v2.4.14.6 -> v2.4.14.7 - Jeff Garzik: network driver updates - Christoph Hellwig: UFS filesystem byteorder cleanups - me: modified Andrea VM page allocator tuning so probably a typo in Christoph's patches, missed by everyone at the time. And I would prefer to have the nffree levels at which we switch back and forth precalculated at mount time. I'll send a fix (along with those for the last remaining xfstests failures) later today.