HAMMER 56D/Many: Media structure finalization, atime/mtime, etc.
* Move the atime and mtime fields to the end of struct hammer_inode_data.
CRCs on hammer_inode_data no longer include atime or mtime, allowing
them to be updated without having to update the related B-Tree node.
* Change the time format for ctime, atime, and mtime. These 64 bit fields
now store microseconds in real time instead of transaction ids.
* atime is now updated asynchronously, and mtime is now updated with
UNDO records only. Split the ITIMES flag into ATIME and MTIME and
no longer set the DDIRTY (inode_data generally dirty) flag when the
mtime changes.
* Finish on-media structural components for pseudo-fs support inside a
HAMMER filesystem.
* Finish on-media structural components for adding a serial number to
the B-Tree element structures, for mirroring support.
* Make fsync() wait for the flush to complete, issue extra flushes as
needed to take the UNDO FIFO's start position past the fsync'd data
so a crash does not undo it.
13 files changed: