freebsd-dev/sbin/fsck_ffs
Kirk McKusick 8f829a5cf0 Continuing efforts to provide hardening of FFS. This change adds a
check hash to the filesystem inodes. Access attempts to files
associated with an inode with an invalid check hash will fail with
EINVAL (Invalid argument). Access is reestablished after an fsck
is run to find and validate the inodes with invalid check-hashes.
This check avoids a class of filesystem panics related to corrupted
inodes. The hash is done using crc32c.

Note this check-hash is for the inode itself and not any of its
indirect blocks. Check-hash validation may be extended to also
cover indirect block pointers, but that will be a separate (and
more costly) feature.

Check hashes are added only to UFS2 and not to UFS1 as UFS1 is
primarily used in embedded systems with small memories and low-powered
processors which need as light-weight a filesystem as possible.

Reviewed by:  kib
Tested by:    Peter Holm
Sponsored by: Netflix
2018-12-11 22:14:37 +00:00
..
dir.c In preparation for adding inode check-hashes, clean up and 2018-11-13 21:40:56 +00:00
ea.c various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
fsck_ffs.8 Exit fsck_ffs with non-zero status when file system is not repaired. 2018-01-15 19:25:11 +00:00
fsck.h Ensure that cylinder-group check-hashes are properly updated when first 2018-12-05 06:31:50 +00:00
fsutil.c Ensure that cylinder-group check-hashes are properly updated when first 2018-12-05 06:31:50 +00:00
gjournal.c In preparation for adding inode check-hashes, clean up and 2018-11-13 21:40:56 +00:00
globs.c Include files missed in 329051. 2018-02-08 23:14:24 +00:00
inode.c Continuing efforts to provide hardening of FFS. This change adds a 2018-12-11 22:14:37 +00:00
main.c Continuing efforts to provide hardening of FFS. This change adds a 2018-12-11 22:14:37 +00:00
Makefile sbin: normalize paths using SRCTOP-relative paths or :H when possible 2017-03-04 11:33:01 +00:00
Makefile.depend DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
pass1.c Ensure that cylinder-group check-hashes are properly updated when first 2018-12-05 06:31:50 +00:00
pass1b.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
pass2.c In preparation for adding inode check-hashes, change the fsck_ffs 2018-10-31 05:17:53 +00:00
pass3.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
pass4.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
pass5.c Ensure that cylinder-group check-hashes are properly updated when first 2018-12-05 06:31:50 +00:00
setup.c Normally when an attempt is made to mount a UFS/FFS filesystem whose 2018-12-06 00:09:39 +00:00
suj.c Revert r313780 (UFS_ prefix) 2018-03-17 12:59:55 +00:00
utilities.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00