HAMMER Filesystem changes:
* Add version checking to the hammer mount code.
* Add ioctls to fetch the hammer filesystem version and to upgrade it,
to support future filesystem revisions.
* Rewrite the algorithm used to integrate reservations with the blockmap
allocate/free code to fix a bug. hammer_buffers were sometimes not
being properly destroyed causing conflicts with later reallocations.
* Add support for up to four directory hash algorithms. Add flexibility
to the namekey iterator API to allow the algorithm to control the
iteration space.
* When iterating memory with the CURSOR_DELETE_VISIBILITY flag set, ignore
the record deleted flags.
HAMMER Utilities changes:
* Add two new hammer directives, 'version' and 'version-upgrade'.
* Change hammer namekey directive to 'namekey1' and 'namekey2', to support
generating directory hashes for different hashing algorithms.
* Change hammer cleanup to still prune for existing snapshots even if
new snapshot generation is disabled.
* Change hammer cleanup's default snapshots config for temporary
filesystems from 'snapshots 0d 60d' to 'snapshots 0d 0d'.
Reported-by: "Justin C. Sherrill" <justin@shiningsilence.com> (blockmap bug)
12 files changed: