freebsd-nq/sbin/fsck_ifs
Ian Dowse f55ff3f3ef The ffs superblock includes a 128-byte region for use by temporary
in-core pointers to summary information. An array in this region
(fs_csp) could overflow on filesystems with a very large number of
cylinder groups (~16000 on i386 with 8k blocks). When this happens,
other fields in the superblock get corrupted, and fsck refuses to
check the filesystem.

Solve this problem by replacing the fs_csp array in 'struct fs'
with a single pointer, and add padding to keep the length of the
128-byte region fixed. Update the kernel and userland utilities
to use just this single pointer.

With this change, the kernel no longer makes use of the superblock
fields 'fs_csshift' and 'fs_csmask'. Add a comment to newfs/mkfs.c
to indicate that these fields must be calculated for compatibility
with older kernels.

Reviewed by:	mckusick
2001-01-15 18:30:40 +00:00
..
dir.c If the lost+found directory is created by fsck, it will do a cacheino() 2000-07-24 19:50:20 +00:00
fsck_ifs.8 Prepare for mdoc(7)NG. 2000-12-18 15:16:24 +00:00
fsck.h Reviewed by: rwatson, bp 2000-10-09 08:26:35 +00:00
fsutil.c The ffs superblock includes a 128-byte region for use by temporary 2001-01-15 18:30:40 +00:00
inode.c Make a tighter test for valid inode numbers in getnextinode(). 2000-07-15 18:28:36 +00:00
main.c Pre-IFS commit. Commit IFS-aware fsck and mount utilities. 2000-10-14 02:44:56 +00:00
Makefile Pre-IFS commit. Commit IFS-aware fsck and mount utilities. 2000-10-14 02:44:56 +00:00
pass1.c Ensure that block and character devices as well as fifo's and sockets 2000-07-12 06:19:22 +00:00
pass1b.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
pass2.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
pass3.c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
pass4.c Pre-IFS commit. Commit IFS-aware fsck and mount utilities. 2000-10-14 02:44:56 +00:00
pass5.c Teach fsck about snapshot files. These changes should have no 2000-07-06 02:03:11 +00:00
preen.c Reviewed by: rwatson, bp 2000-10-09 08:26:35 +00:00
setup.c The ffs superblock includes a 128-byte region for use by temporary 2001-01-15 18:30:40 +00:00
utilities.c Some missed magic in the fsck wrapper commit which is required by other 2000-10-09 09:21:04 +00:00