1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-22 11:17:19 +00:00
freebsd/sbin
Jeff Roberson 280e091a99 Implement fully asynchronous partial truncation with softupdates journaling
to resolve errors which can cause corruption on recovery with the old
synchronous mechanism.

 - Append partial truncation freework structures to indirdeps while
   truncation is proceeding.  These prevent new block pointers from
   becoming valid until truncation completes and serialize truncations.
 - On completion of a partial truncate journal work waits for zeroed
   pointers to hit indirects.
 - softdep_journal_freeblocks() handles last frag allocation and last
   block zeroing.
 - vtruncbuf/ffs_page_remove moved into softdep_*_freeblocks() so it
   is only implemented in one place.
 - Block allocation failure handling moved up one level so it does not
   proceed with buf locks held.  This permits us to do more extensive
   reclaims when filesystem space is exhausted.
 - softdep_sync_metadata() is broken into two parts, the first executes
   once at the start of ffs_syncvnode() and flushes truncations and
   inode dependencies.  The second is called on each locked buf.  This
   eliminates excessive looping and rollbacks.
 - Improve the mechanism in process_worklist_item() that handles
   acquiring vnode locks for handle_workitem_remove() so that it works
   more generally and does not loop excessively over the same worklist
   items on each call.
 - Don't corrupt directories by zeroing the tail in fsck.  This is only
   done for regular files.
 - Push a fsync complete record for files that need it so the checker
   knows a truncation in the journal is no longer valid.

Discussed with:	mckusick, kib (ffs_pages_remove and ffs_truncate parts)
Tested by:	pho
2011-06-10 22:48:35 +00:00
..
adjkerntz
atacontrol Re-encode files from ISO-8859-1 to UTF-8 2011-05-22 14:03:30 +00:00
atm
badsect
bsdlabel
camcontrol
ccdconfig
clri
comcontrol
conscontrol
ddb
devd Typo. For USB devices, 'serial' should be 'sernum'. 2011-05-10 02:34:11 +00:00
devfs
dhclient
dmesg
dump
dumpfs We now have multiple filesystems (UFS, ZFS, ...), so for tools that only 2011-05-08 12:34:31 +00:00
dumpon
fdisk
fdisk_pc98
ffsinfo
fsck
fsck_ffs Implement fully asynchronous partial truncation with softupdates journaling 2011-06-10 22:48:35 +00:00
fsck_msdosfs
fsdb
fsirand
gbde
geom Do not use LCM from stripesize and user specified alignment value. 2011-06-07 11:11:11 +00:00
ggate
growfs We now have multiple filesystems (UFS, ZFS, ...), so for tools that only 2011-05-08 12:34:31 +00:00
gvinum
hastctl Keep statistics on number of BIO_READ, BIO_WRITE, BIO_DELETE and BIO_FLUSH 2011-05-23 21:15:19 +00:00
hastd Read from the socket using the same max buffer size as we use while 2011-06-04 16:01:30 +00:00
ifconfig - Accept Router Advertisement messages even when net.inet6.ip6.forwarding=1. 2011-06-06 02:14:23 +00:00
init
ipf
ipfw Initialize co.use_set variable before parsing each new rule. 2011-06-06 11:10:38 +00:00
iscontrol
kldconfig
kldload
kldstat
kldunload
ldconfig
mca
md5
mdconfig
mdmfs
mknod
mksnap_ffs
mount Add a special mount option "failok" to indicate that the administrator wants 2011-06-07 18:48:49 +00:00
mount_cd9660
mount_ext2fs
mount_hpfs
mount_msdosfs
mount_nfs
mount_ntfs
mount_nullfs
mount_reiserfs Re-encode files from ISO-8859-1 to UTF-8 2011-05-22 14:03:30 +00:00
mount_std
mount_udf
mount_unionfs
natd
newfs Update the manual page to reflect the new 32K/4K defaults. 2011-05-28 15:14:50 +00:00
newfs_msdos
nfsiod
nos-tun
pfctl
pflogd
ping
ping6
quotacheck
rcorder Bump .Dd 2011-06-06 13:18:29 +00:00
reboot
recoverdisk
resolvconf
restore
route
routed
rtsol Add dump.c to the rtsol build. It is needed now that sec2str is non-static 2011-06-08 21:59:07 +00:00
savecore
sconfig
setkey mdoc: fix markup 2011-06-02 09:56:42 +00:00
shutdown
spppcontrol
sunlabel
swapon
sysctl
tunefs We now have multiple filesystems (UFS, ZFS, ...), so for tools that only 2011-05-08 12:34:31 +00:00
umount Add a sentence to the umount.8 man page to clarify the behaviour 2011-05-31 18:27:18 +00:00
Makefile
Makefile.amd64
Makefile.arm
Makefile.i386
Makefile.ia64
Makefile.inc
Makefile.mips
Makefile.pc98
Makefile.sparc64