hammer2 - stabilization
authorMatthew Dillon <dillon@apollo.backplane.com>
Wed, 4 Dec 2013 17:44:59 +0000 (09:44 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Wed, 4 Dec 2013 17:44:59 +0000 (09:44 -0800)
commit1fca819ab6079b092d1495bc78725ff8739bcfe2
tree51df45cdb63cf28ce56d24b3f77a39934b345312
parent5a39e0681fd2084dac6e15b66b8d60ad6fda0242
hammer2 - stabilization

* Fix the hammer2_chain_assert_not_present() call in hammer2_chain_insert()
  to avoid SMP races that could cause it to trigger falsely.  Also fix a
  case where inserting a deleted chain was improperly calling it.

* Fix bugs in hammer2_combined_find().  It is possible for a deleted
  chain from a prior synchronization point to cover a matching media
  blockref from a later synchronization point.  When both a media block
  and an in-memory chain are found, do not just blindly choose the
  in-memory chain.  Choose based on the synchronization points.

* Refactor part of the hardlink code.  Do not create a dummy chain
  to place-hold the target when a hardlink has to be shifted up to
  a parent directory.  Allow hammer2_chain_duplicate() to do it.
sbin/hammer2/cmd_debug.c
sys/vfs/hammer2/hammer2_chain.c
sys/vfs/hammer2/hammer2_freemap.c
sys/vfs/hammer2/hammer2_inode.c
sys/vfs/hammer2/hammer2_vnops.c