[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
CVS: cvs.openbsd.org: src
- To: source-changes_(_at_)_cvs_(_dot_)_openbsd_(_dot_)_org
- Subject: CVS: cvs.openbsd.org: src
- From: Grigoriy Orlov <gluk_(_at_)_cvs_(_dot_)_openbsd_(_dot_)_org>
- Date: Thu, 12 Apr 2001 20:39:07 -0600 (MDT)
- Reply-to: Grigoriy Orlov <gluk_(_at_)_cvs_(_dot_)_openbsd_(_dot_)_org>
CVSROOT: /cvs
Module name: src
Changes by: gluk_(_at_)_cvs_(_dot_)_openbsd_(_dot_)_org 2001/04/12 20:39:06
Modified files:
sys/ufs/ffs : fs.h ffs_vfsops.c
sbin/fsck_ffs : setup.c utilities.c
sbin/dumpfs : dumpfs.c
sbin/newfs : mkfs.c
Log message:
Fix overflow in superblock. From FreeBSD.
FreeBSD's log:
> 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.
art@ ok.
Visit your host, monkey.org