freebsd-dev/sbin
Kirk McKusick 5cc52631b3 Rewrite the disk I/O management system in fsck_ffs(8). Other than
making fsck_ffs(8) run faster, there should be no functional change.

The original fsck_ffs(8) had its own disk I/O management system.
When gjournal(8) was added to FreeBSD 7, code was added to fsck_ffs(8)
to do the necessary gjournal rollback. Rather than use the existing
fsck_ffs(8) disk I/O system, it wrote its own from scratch. Similarly
when journalled soft updates were added in FreeBSD 9, code was added
to fsck_ffs(8) to do the necessary journal rollback. And once again,
rather than using either of the existing fsck_ffs(8) disk I/O
systems, it wrote its own from scratch. Lastly the fsdb(8) utility
uses the fsck_ffs(8) disk I/O management system. In preparation for
making the changes necessary to enable snapshots to be taken when
using journalled soft updates, it was necessary to have a single
disk I/O system used by all the various subsystems in fsck_ffs(8).

This commit merges the functionality required by all the different
subsystems into a single disk I/O system that supports all of their
needs. In so doing it picks up optimizations from each of them
with the results that each of the subsystems does fewer reads and
writes than it did with its own customized I/O system. It also
greatly simplifies making changes to fsck_ffs(8) since everything
goes through a single place. For example the ginode() function
fetches an inode from the disk. When inode check hashes were added,
they previously had to be checked in the code implementing inode
fetch in each of the three different disk I/O systems. Now they
need only be checked in ginode().

Tested by:    Peter Holm
Sponsored by: Netflix
2021-01-07 15:03:15 -08:00
..
adjkerntz various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
bectl bectl(8): sync man page and help text 2021-01-06 10:38:25 -09:00
bsdlabel Remove deprecated GEOM classes 2019-08-13 20:06:55 +00:00
camcontrol sbin/camcontrol: use calloc/strlcpy where appropriate. 2021-01-03 22:52:28 -08:00
ccdconfig ccdconfig: Move VCS tags to be more consistent with our style. 2017-12-30 00:26:42 +00:00
clri In preparation for adding inode check-hashes, clean up and 2018-11-13 21:40:56 +00:00
comcontrol Remove sio(4). 2019-11-21 01:24:49 +00:00
conscontrol Remove sio(4). 2019-11-21 01:24:49 +00:00
ddb ddb: use 'textdump dump' instead of 'call doadump' 2019-10-18 12:32:01 +00:00
decryptcore decryptcore: preload OpenSSL error strings; seed PRNG 2020-12-11 14:32:42 +00:00
devd devd.conf(5): Fix a mandoc related issue 2020-12-19 11:03:04 +00:00
devfs add documentation that the rules need to be reloaded, and how to do it... 2020-12-01 23:25:21 +00:00
devmatch devmatch(8): Fix section ordering 2020-11-20 16:34:01 +00:00
dhclient dhclient(8): Bugfixes for some issues reported by mandoc 2020-10-03 18:42:15 +00:00
dmesg General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
dump dump(8): clarify the recommended use of cache and snapshots 2020-12-28 21:56:58 +00:00
dumpfs Print the fs last-mounted time too. 2020-05-02 00:10:25 +00:00
dumpon dumpon(8): Add missing section arguments 2020-12-28 16:48:58 +01:00
etherswitchcfg Add the 'drop tagged' flag support for ethernet switch ports. 2019-06-28 22:12:43 +00:00
fdisk Remove deprecated GEOM classes 2019-08-13 20:06:55 +00:00
ffsinfo In preparation for adding inode check-hashes, clean up and 2018-11-13 21:40:56 +00:00
fsck Fix a few mandoc issues 2020-10-09 14:03:45 +00:00
fsck_ffs Rewrite the disk I/O management system in fsck_ffs(8). Other than 2021-01-07 15:03:15 -08:00
fsck_msdosfs Use %ju and cast to (uintmax_t) to avoid using PRI* macros. 2020-09-28 04:30:31 +00:00
fsdb Rewrite the disk I/O management system in fsck_ffs(8). Other than 2021-01-07 15:03:15 -08:00
fsirand Filesystem utilities that modify the filesystem (growfs(8), tunefs(8), 2020-10-25 01:36:33 +00:00
gbde gbde(8) - simplify randomisation with arc4random_buf 2019-02-11 00:11:02 +00:00
geom geom(8): list geoms with /dev/ prefix 2020-12-12 07:22:38 +00:00
ggate ggate: Fix ggated/ggatec debug print of offsets. 2020-09-09 12:58:19 +00:00
growfs Filesystem utilities that modify the filesystem (growfs(8), tunefs(8), 2020-10-25 01:36:33 +00:00
gvinum gvinum(8): Fix an issue reported by mandoc 2020-10-03 18:49:00 +00:00
hastctl various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
hastd hastd(8) assumes it has no extra file descriptors opened 2020-11-29 13:45:53 +00:00
ifconfig Fix bug in ifconfig preventing proper VLAN creation. 2020-12-09 20:13:12 +00:00
init sbin/init: Reduce code duplication by using %m for error message 2020-12-25 17:49:33 -08:00
ipf Create a link to the ipmon.conf.5 man page as documented in ipmon.5. 2019-06-27 12:37:44 +00:00
ipfw ipfw(8): Fix a few mandoc related issues 2020-12-19 12:47:40 +00:00
iscontrol pkgbase: We can't easily have a package with either a - or a _ 2020-08-07 12:19:21 +00:00
kldconfig kldconfig(8): Add EXAMPLES to the man page 2020-09-29 17:52:15 +00:00
kldload various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
kldstat kldstat(8): Add EXAMPLES to the man page 2020-09-02 18:15:57 +00:00
kldunload various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
ldconfig ldconfig: Retire a.out support 2020-12-31 10:29:08 -05:00
md5 md5: return non-zero if built-in tests (-x) fail 2020-07-23 20:06:24 +00:00
mdconfig Use Cm macros instead of Ar when referring to a specific memory disk type 2020-11-06 15:55:13 +00:00
mdmfs mdmfs(8): Fix an issue reported by mandoc 2020-10-03 18:47:50 +00:00
mknod General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
mksnap_ffs Deduplicate fsid comparisons 2020-05-21 01:55:35 +00:00
mount Move the mount name to bit mapping into sys/mount.h so it can be shared with the 2020-08-19 17:09:58 +00:00
mount_cd9660 Advise reader to also see mdconfig(8) in mount_cd9660(8). 2018-08-11 08:34:24 +00:00
mount_fusefs Correct a handful of typos/grammos. 2019-12-07 15:17:00 +00:00
mount_msdosfs Fix a few mandoc issues 2020-10-09 14:03:45 +00:00
mount_nfs mount_nfs(8): add a description for the new "tlscertname" option 2020-12-24 14:20:06 -08:00
mount_nullfs Remove the check that prevents creating "loops" from mount_nullfs(8). 2020-10-25 14:09:00 +00:00
mount_udf General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
mount_unionfs General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
natd DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
newfs Reference newfs_msdos(8) from the newfs(8) manual 2021-01-07 10:24:07 +01:00
newfs_msdos Fix makefs bootstrap on macOS after D25563 2020-08-25 13:30:24 +00:00
nfsiod pkgbase: Create a FreeBSD-utilities package and make it the default one 2019-09-05 14:15:47 +00:00
nos-tun pkgbase: Create a FreeBSD-utilities package and make it the default one 2019-09-05 14:15:47 +00:00
nvmecontrol nvmecontrol(8): Fix a few mandoc related issues and add a SEE ALSO section 2020-12-19 11:47:38 +00:00
pfctl pfctl: Stop sharing pf_ruleset.c with the kernel 2021-01-05 23:35:37 +01:00
pfilctl Do a sweep and remove most WARNS=6 settings 2020-10-01 01:10:51 +00:00
pflogd DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
ping ping: fix ping when the kernel was built without INET6 2021-01-01 10:25:49 -07:00
ping6 Merge ping6 to ping 2020-11-26 04:29:30 +00:00
quotacheck Normally when an attempt is made to mount a UFS/FFS filesystem whose 2018-12-06 00:09:39 +00:00
rcorder [rcorder] [crunch] Fix C function declarations to include void 2020-09-21 17:59:45 +00:00
reboot Address a mandoc warning 2020-11-10 14:17:05 +00:00
recoverdisk Do a sweep and remove most WARNS=6 settings 2020-10-01 01:10:51 +00:00
resolvconf sbin: normalize paths using SRCTOP-relative paths or :H when possible 2017-03-04 11:33:01 +00:00
restore Clean up global variable declarations in the dump and restore 2020-04-04 00:56:56 +00:00
route Skip sbin/route tests if jail not installed (WITHOUT_JAIL). 2020-08-04 21:34:13 +00:00
routed sbin/routed: Remove unused code for sgi and NetBSD. 2020-12-25 17:42:47 -08:00
rtsol Update Makefile.depend files 2019-12-11 17:37:53 +00:00
savecore savecore: bail on write error even when decompressing 2020-12-11 22:52:12 +00:00
sconfig Fix the following -Werror warning from clang 10.0.0 in sconfig: 2020-02-13 18:37:17 +00:00
setkey Refer to AES-CBC as "aes-cbc" rather than "rijndael-cbc" for IPsec. 2020-06-04 22:58:37 +00:00
shutdown shutdown.8: Fix typo 2020-07-05 13:08:17 +00:00
spppcontrol various: general adoption of SPDX licensing ID tags. 2017-11-27 15:37:16 +00:00
swapon The -F flag of swapon(8) requires -a to work. 2020-05-19 12:16:44 +00:00
sysctl sbin/sysctl: Style fix 2020-12-23 12:45:11 -05:00
tests
tunefs Filesystem utilities that modify the filesystem (growfs(8), tunefs(8), 2020-10-25 01:36:33 +00:00
umount Document that umount -A does not unmount /dev 2020-06-18 23:12:55 +00:00
veriexec veriexec(8): Bugfix for an issue reported by mandoc 2020-10-03 18:46:42 +00:00
zfsbootcfg loader: zfs should support bootonce an nextboot 2020-09-21 09:01:10 +00:00
Makefile Merge ping6 to ping 2020-11-26 04:29:30 +00:00
Makefile.amd64 NVME support is only for x86 and powerpc64. 2018-06-14 01:15:19 +00:00
Makefile.arm
Makefile.i386 NVME support is only for x86 and powerpc64. 2018-06-14 01:15:19 +00:00
Makefile.inc build: provide a default WARNS for all in-tree builds 2020-09-18 17:17:46 +00:00
Makefile.mips
Makefile.powerpc64 NVME support is only for x86 and powerpc64. 2018-06-14 01:15:19 +00:00