Module Name: src Committed By: chs Date: Sat Jan 7 19:41:30 UTC 2023
Modified Files: src/sbin/fsck_ffs: main.c pass1.c pass1b.c pass4.c pass5.c setup.c src/sbin/fsdb: fsdb.c src/sbin/newfs: mkfs.c src/sbin/resize_ffs: resize_ffs.c src/sbin/tunefs: tunefs.c src/sys/ufs/ffs: ffs_alloc.c ffs_extern.h ffs_subr.c fs.h src/usr.sbin/dumpfs: dumpfs.c src/usr.sbin/makefs: Makefile ffs.c src/usr.sbin/makefs/ffs: ffs_alloc.c ffs_extern.h mkfs.c src/usr.sbin/quotacheck: quotacheck.c Log Message: ufs: fixed signed/unsigned bugs affecting large file systems Apply these commits from FreeBSD: commit e870d1e6f97cc73308c11c40684b775bcfa906a2 Author: Kirk McKusick <mckus...@freebsd.org> Date: Wed Feb 10 20:10:35 2010 +0000 This fix corrects a problem in the file system that treats large inode numbers as negative rather than unsigned. For a default (16K block) file system, this bug began to show up at a file system size above about 16Tb. To fully handle this problem, newfs must be updated to ensure that it will never create a filesystem with more than 2^32 inodes. That patch will be forthcoming soon. Reported by: Scott Burns, John Kilburg, Bruce Evans Followup by: Jeff Roberson PR: 133980 MFC after: 2 weeks commit 81479e688b0f643ffacd3f335b4b4bba460b769d Author: Kirk McKusick <mckus...@freebsd.org> Date: Thu Feb 11 18:14:53 2010 +0000 One last pass to get all the unsigned comparisons correct. In additional to the changes from FreeBSD, this commit includes quite a few related changes to appease -Wsign-compare. To generate a diff of this commit: cvs rdiff -u -r1.90 -r1.91 src/sbin/fsck_ffs/main.c cvs rdiff -u -r1.62 -r1.63 src/sbin/fsck_ffs/pass1.c cvs rdiff -u -r1.23 -r1.24 src/sbin/fsck_ffs/pass1b.c cvs rdiff -u -r1.28 -r1.29 src/sbin/fsck_ffs/pass4.c cvs rdiff -u -r1.55 -r1.56 src/sbin/fsck_ffs/pass5.c cvs rdiff -u -r1.104 -r1.105 src/sbin/fsck_ffs/setup.c cvs rdiff -u -r1.53 -r1.54 src/sbin/fsdb/fsdb.c cvs rdiff -u -r1.132 -r1.133 src/sbin/newfs/mkfs.c cvs rdiff -u -r1.57 -r1.58 src/sbin/resize_ffs/resize_ffs.c cvs rdiff -u -r1.57 -r1.58 src/sbin/tunefs/tunefs.c cvs rdiff -u -r1.171 -r1.172 src/sys/ufs/ffs/ffs_alloc.c cvs rdiff -u -r1.87 -r1.88 src/sys/ufs/ffs/ffs_extern.h cvs rdiff -u -r1.53 -r1.54 src/sys/ufs/ffs/ffs_subr.c cvs rdiff -u -r1.70 -r1.71 src/sys/ufs/ffs/fs.h cvs rdiff -u -r1.67 -r1.68 src/usr.sbin/dumpfs/dumpfs.c cvs rdiff -u -r1.39 -r1.40 src/usr.sbin/makefs/Makefile cvs rdiff -u -r1.73 -r1.74 src/usr.sbin/makefs/ffs.c cvs rdiff -u -r1.30 -r1.31 src/usr.sbin/makefs/ffs/ffs_alloc.c cvs rdiff -u -r1.8 -r1.9 src/usr.sbin/makefs/ffs/ffs_extern.h cvs rdiff -u -r1.41 -r1.42 src/usr.sbin/makefs/ffs/mkfs.c cvs rdiff -u -r1.50 -r1.51 src/usr.sbin/quotacheck/quotacheck.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.