hammer2 - major simplification 1/many (stabilization)
authorMatthew Dillon <dillon@apollo.backplane.com>
Wed, 30 Jul 2014 20:35:55 +0000 (13:35 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Wed, 30 Jul 2014 20:35:55 +0000 (13:35 -0700)
commit850687d2abc82e9681506241ad020820ebb41bbf
tree98a8a0d89e08bfb2f0dbe29be0247ff4fcb6038a
parent7529c2ace5ecce5cc120e6e5a922dba51aa14fc5
hammer2 - major simplification 1/many (stabilization)

* Fix a dirty chain leak due to detached inodes and the delayed vnode
  deactivation that DragonFly does.  A cache_unlink() call was missing
  to properly cycle the vnode in the nrename path and a
  hammer2_cluster_delete() needed the DELETE_PERMANENT flag to handle the
  case where the vnode was already detached.

* Fix an inode reference count leak, callers of hammer2_inode_common_parent()
  were not properly dropping the returned inode.

* Fix a deadlock due to front-end vs write-thread interactions.  nvtruncbuf()
  calls must not be made with an inode lock held.

* Cleanup some debugging, add some debugging.
sys/vfs/hammer2/hammer2.h
sys/vfs/hammer2/hammer2_chain.c
sys/vfs/hammer2/hammer2_cluster.c
sys/vfs/hammer2/hammer2_flush.c
sys/vfs/hammer2/hammer2_inode.c
sys/vfs/hammer2/hammer2_ioctl.c
sys/vfs/hammer2/hammer2_vfsops.c
sys/vfs/hammer2/hammer2_vnops.c