- Create a branch of head for suj.
 - Create a branch of 8 for suj
 - Create a branch of 7 for suj.
 - Create a branch of 6 for suj.
 - Reduce diffs with current to make the suj merge easier.
 - Reduce diffs with 8 to make the suj merge easier.
 - Reduce diffs with 7 to make the suj merge easier.
 - Import softupdate journaling.
 - Merge SUJ from the private head branch to the private 8 branch.
 - Add a text file to easily keep track of various revision numbers
   for easy diffing and merging.
 - Merge SUJ from 8 to 7.
 - Merge suj from 7 to 6.
 - Change the journal format to place a segment header on every physical
   block so that there is no possibility that recovery confuses a record
   with a segment header.  Also add a block count to the segment header
   so this doesn't need to be calculated everywhere.
 - Switch the SUJ flag to what was INDEXDIRS so that old kernels
   automatically clear the SUJ flag if it is mounted.  Old fsck can still
   create differences between the checker and the journal so the filesystem
   must be checked all the way to clean with either the old or new fsck
   when returning to a new implementation from old.
 - We can immediately remove canceled jaddrefs from the inode list of refs
   unless they are NEWBLOCK references which modify a bitmap.  Adjust the
   ref counts appropriately so that dirty mounted filesystems don't panic
   on invalid link counts if the journal is ignored.
 - Require the force flag to mount a journaled filesystem if it is dirty.
   Tell the user that this will invalidate his journal and require a full
   fsck.
 - Don't permit truncate to change the size of the file until it's done
   when using suj.  This can confuse the number of frags in use when
   recovery evaluates the inode.
 - Implement partial truncation in the checker.  The file is truncated to
   the lesser of the original size, the last allocated block, and the
   intended truncation size depending on how far the original truncation
   got.
 - Improve recovery performance by doing duplication and reference move
   operations for each inode all at once.  The algorithm is still N^2 but
   doing it as records are discovered ensures that the rest are out of
   cache when we search.  This reduced fsck time by 80%.
 - Verify that .. matches the expected parent before deciding to skip
   a parent's record.
 - Add some more information to fsdb.
 - Merge r202989 and r202990 from suj/head
 - Move the softdep journal inode into the namespace at /.sujournal.  This
   requires quite a lot of code as tunefs needs to be able to create
   directory entries in ROOTINO.  However this is much cleaner from a
   compat standpoint.  The inode is marked IMMUTABLE and only readable by
   root.  Eventually the kernel will prevent clearing of the IMMUTABLE bit.
 - Fix a nasty link count bug involving changedirectory_offset().  When
   a link may exist at more than one location depending on when the
   directory block was written we create duplicate addref records.  When
   an add and a remove are detected at the same offset the remove is
   discarded based on the assumption that it cancels the link in the add.
   A legitimate remove may collide with one of these alternate offset adds
   that are created by fsck and be discarded even though it removed a real
   link.  To resolve this the lineage of the addref must be established
   to determine whether the remove refers to an alternate address or not.
   Any offset which is not up-to-date with respect to the offset in the
   move record is considered alternate and will not discard a remove.
 - Use clear_remove() when we begin to exhaust dependencies to prevent
   excessive looping in request_cleanup().  This should probably
   also be done in softdep_fsync().  Only workloads which delete
   incredible numbers of files within the same directory would be
   affected.  stress2 can generate over 100,000 outstanding removes on
   my test machine.
 - Merge r203012 from suj/head
 - Recent changes left an uninitialized sino variable which could lead to
   a crash.
 - Only write the superblock if the user has requested that we write
   changes or in preen mode.
 - Clear the pendingblocks/pendinginodes fields of the superblock when we
   clean.  SUJ doesn't need these anyway.
 - Merge r203088 from suj/head
 - Resolve cases where the freelink could be zero'd when we manually alter
   inodes.  This corrupted the unlinked but referenced list resulting in
   inodes that were never freed.
 - Permit writing to inodes that are stable on the unlinked list on disk as
   processes may continue to do I/O to them that can not be completed unless
   the inode pointers are updated.
 - Don't adjust down nlinks when we're going to journal the remove.  This
   can lead to incorrect starting links in the journal.