hammer2 - slave sync adjustments, doc update
authorMatthew Dillon <dillon@apollo.backplane.com>
Thu, 9 Apr 2015 06:58:54 +0000 (23:58 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Thu, 9 Apr 2015 07:05:03 +0000 (00:05 -0700)
commitf7712c4358868ec14b4f8a53f88546e0716ff32e
tree2083a484254c310b4fb0f76fcf8325e45e4dfb19
parent056f320b0fc1f5f27bbbd4d8a9793d8af8fe6c9f
hammer2 - slave sync adjustments, doc update

* Fix the hammer2_cluster*() API, do not multiply-ref underlying chains
  when a cluster is multiply-ref'd.  Fixes issues when underlying chain
  elements of the cluster are replaced during operations.

* Fix frontend writing issues when multiple slaves are present.

* Adjust documentation a bit.  Get rid of the 256-way split description
  for copyid use, we aren't going to do things that way so the size for
  each physical volume can be up to ~2^64 (maybe ~2^63 to be safe).

* Add a HAMMER2_LOOKUP_NODIRECT flag to prevent recursively returning
  the inode and remove the broken (cluster == cparent) test in the slave-sync
  code.  Doh, cluster structures are independently allocated, test was
  broken.

* Fix several other slave-sync issues when multiple slaves are present.
  (there are still some issues remaining).

* Fix accounting for the number of mounts using a physical device
  (hmp), rename pmp_count to mount_count for clarity.
sys/vfs/hammer2/DESIGN
sys/vfs/hammer2/hammer2.h
sys/vfs/hammer2/hammer2_chain.c
sys/vfs/hammer2/hammer2_cluster.c
sys/vfs/hammer2/hammer2_syncthr.c
sys/vfs/hammer2/hammer2_vfsops.c