HAMMER 61A/Many: Stabilization
authorMatthew Dillon <dillon@dragonflybsd.org>
Thu, 10 Jul 2008 21:23:58 +0000 (21:23 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Thu, 10 Jul 2008 21:23:58 +0000 (21:23 +0000)
commit6c1f89f499c67a500f5d91688c316a0c543a6597
tree80a52b0dac3e2e6f25feff1bb786ac2abec73379
parente0af86f0ee6484d52cb4120fd426f16ea14657fc
HAMMER 61A/Many: Stabilization

* Fix a buffer exhaustion issue.  When creating large numbers of empty files
  a single inode sync of the directory can exhaust the buffer cache because
  not enough other things get dirty enough to force a flush.

  Put a check in the record syncing code and do a partial finalization if
  necessary to avoid deadlocking the buffer cache.

* Fix a panic caused by a missing call to hammer_cursor_deleted_element().

Reported-by: Michael Neumann <mneumann@ntecs.de>,
     Gergo Szakal <bastyaelvtars@gmail.com>
sys/vfs/hammer/hammer.h
sys/vfs/hammer/hammer_btree.c
sys/vfs/hammer/hammer_flusher.c
sys/vfs/hammer/hammer_inode.c
sys/vfs/hammer/hammer_vfsops.c