hammer2 - serialized flush work part 1
authorMatthew Dillon <dillon@apollo.backplane.com>
Thu, 31 Jan 2013 04:53:27 +0000 (20:53 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Thu, 31 Jan 2013 04:53:27 +0000 (20:53 -0800)
commit476d2aadb736b6541fd2075a1de97f9069aa5080
treeedbf5d14bfc29618a0d81a451365838a40490eb2
parent502584f519505ddc154e37315a121a207c711075
hammer2 - serialized flush work part 1

This is preliminary work required to support chain structure replication
for the purposes of recording modifications which are then separated by
serialization points (by transaction id).  Ultimately this will allow the
flush code to flush to an exact serialization point and in the process
operate completely asynchronously from any further modifications being
made on the frontend after that serialization point.

* Separate hammer2_inode from hammer2_chain.

* Split the locking APIs for inodes and chains into their own functions.

* Move ip_data into chain->data->ipdata (kmalloc'd), instead of embedding
  it in hammer2_inode.  This allows the inode structure to disconnect from
  the chain.
sys/vfs/hammer2/hammer2.h
sys/vfs/hammer2/hammer2_ccms.c
sys/vfs/hammer2/hammer2_ccms.h
sys/vfs/hammer2/hammer2_chain.c
sys/vfs/hammer2/hammer2_flush.c
sys/vfs/hammer2/hammer2_inode.c
sys/vfs/hammer2/hammer2_ioctl.c
sys/vfs/hammer2/hammer2_subr.c
sys/vfs/hammer2/hammer2_vfsops.c
sys/vfs/hammer2/hammer2_vnops.c