HAMMER 56D/Many: Media structure finalization, atime/mtime, etc.
authorMatthew Dillon <dillon@dragonflybsd.org>
Fri, 20 Jun 2008 21:24:53 +0000 (21:24 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Fri, 20 Jun 2008 21:24:53 +0000 (21:24 +0000)
commitddfdf5424558086b638f9769aae29b8250836145
treea5e2f72ab3a074ef3333a42ac0553401452d8718
parent7849afbc39d5b65f0f22517cd8cb28e11732311d
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:
sys/vfs/hammer/hammer.h
sys/vfs/hammer/hammer_btree.c
sys/vfs/hammer/hammer_btree.h
sys/vfs/hammer/hammer_disk.h
sys/vfs/hammer/hammer_inode.c
sys/vfs/hammer/hammer_ioctl.c
sys/vfs/hammer/hammer_object.c
sys/vfs/hammer/hammer_ondisk.c
sys/vfs/hammer/hammer_reblock.c
sys/vfs/hammer/hammer_subs.c
sys/vfs/hammer/hammer_transaction.c
sys/vfs/hammer/hammer_vfsops.c
sys/vfs/hammer/hammer_vnops.c