HAMMER 62/Many: Stabilization, performance, and cleanup
authorMatthew Dillon <dillon@dragonflybsd.org>
Wed, 16 Jul 2008 18:30:59 +0000 (18:30 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Wed, 16 Jul 2008 18:30:59 +0000 (18:30 +0000)
commit7b6ccb11dc6aec35ddb3c95ebd8be159062109d9
treed5bf6255582d4a8179c2ee95b721868459767071
parentc5c4cc5ddf7e65dae3d199b4e9dc34db2ea6ed50
HAMMER 62/Many: Stabilization, performance, and cleanup

* Fix 'hammer synctid'.  It was blocking until the next filesystem sync in
  some cases.  Also redo the flush sequencing for synctid so the inodes
  are flushed in large groups instead of individually, improving performance.

* Fix a case where reclaimed inodes were sometimes not being reclaimed on
  the backend in a timely fashion.  There are still some performance issues
  here.

* Fix a race in the buffer invalidation code that could cause an assertion.

* Remove a short-cut in hammer_checkspace() that was not taking into
  account reserved big-blocks and allowing operations to exhaust all
  free space on smaller medias and then assert, instead of returning ENOSPC.

* Clean up the flush_group append code by tracking the append point.

* Clean up documentation in the inode flush path.

* Allow the reblocker to dig deeper into available free space when run
  with a low fill level (<= 20%).
sys/vfs/hammer/hammer.h
sys/vfs/hammer/hammer_blockmap.c
sys/vfs/hammer/hammer_flusher.c
sys/vfs/hammer/hammer_inode.c
sys/vfs/hammer/hammer_ioctl.c
sys/vfs/hammer/hammer_ondisk.c
sys/vfs/hammer/hammer_reblock.c
sys/vfs/hammer/hammer_undo.c