HAMMER 60F/Many: Mirroring
authorMatthew Dillon <dillon@dragonflybsd.org>
Mon, 7 Jul 2008 03:49:51 +0000 (03:49 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Mon, 7 Jul 2008 03:49:51 +0000 (03:49 +0000)
commita56cb01252f6dac3d110d607b5deff341d3c5910
treed4bfe74b53ab8731c20272588847705dc54b96e5
parentd8935c61903fa81eea253228cd13735897ff7caa
HAMMER 60F/Many: Mirroring

* Properly propagate mirror_tid when splitting B-Tree nodes.

* Arrange for the fsid reported as st_dev to be based on the shared_uuid,
  so the same value is reported on the slaves as on the master.

  Munge the fsid based on the asof timestamp to try to make snapshots look
  different from current filesystems, so programs like 'diff' don't get
  confused.

  This allows one to run (tar cf - directory@@<timestamp> | md5) on a
  slave and get the same answer as he got on the master.  Note, however,
  that the tar cannot include the root directory of the PFS or master
  because the root directory inode is not mirrored (only files and directories
  underneath it), and will mess up the MD5.

* Properly update vol0_next_tid when writing to a mirroring slave.

* Attempt to regenerate the inode for the root PFS when doing a name lookup
  based on the current latest snapshot.  This may need more work.
sys/vfs/hammer/hammer.h
sys/vfs/hammer/hammer_btree.c
sys/vfs/hammer/hammer_disk.h
sys/vfs/hammer/hammer_inode.c
sys/vfs/hammer/hammer_mirror.c
sys/vfs/hammer/hammer_ondisk.c
sys/vfs/hammer/hammer_subs.c
sys/vfs/hammer/hammer_vnops.c