hammer2 - core file read and write paths
authorMatthew Dillon <dillon@apollo.backplane.com>
Fri, 17 Feb 2012 06:22:37 +0000 (22:22 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Fri, 17 Feb 2012 06:22:37 +0000 (22:22 -0800)
commitc667909f8b0c9cba8f5b860549058bf610820f83
tree55c80485f14d3a790e19326b35757582b1cbd01e
parenta7bc336718299faea6acd8ab3e1cbd8946946d78
hammer2 - core file read and write paths

* Get the core file create, read, and write paths working and tested for
  up to 8 blocks (we still don't have indirect blocks yet).

* Add a flags field to the hammer2_chain_lookup() and hammer2_chain_next()
  to retrieve the element with a ref but without a lock, avoiding any I/O
  (used to obtain the physical block address in the strategy_read code).

* Fix bugs in previously untested code paths related to reading and writing.
  Fixed a double allocation, improper handling of a degenerate case when
  creating a new record, missing b[q]relse()'s or bdwrite()'s, etc.

* Fix a ripout in the hammer2_chain_flush()'s SPLAY_FOREACH() loop that
  led to a crash.

* Add hammer2_vop_close()
* Add hammer2_vop_ncreate()
sys/vfs/hammer2/hammer2.h
sys/vfs/hammer2/hammer2_chain.c
sys/vfs/hammer2/hammer2_freemap.c
sys/vfs/hammer2/hammer2_inode.c
sys/vfs/hammer2/hammer2_vfsops.c
sys/vfs/hammer2/hammer2_vnops.c