HAMMER 4/many - more core infrastructure
commit5b79e80fb5274d23fc1063d7573d48fe6eab803f
authorMatthew Dillon <dillon@dragonflybsd.org>
Tue, 20 Nov 2007 07:16:28 +0000 (20 07:16 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Tue, 20 Nov 2007 07:16:28 +0000 (20 07:16 +0000)
treead231e2ea5934292a787762e724da1875b42c0d1
parentf921135ea397cfee5b852ae425e82c9bd74c9001
HAMMER 4/many - more core infrastructure

* Add reserved areas for a boot area and a memory log.

* Add merged scan operations which are the core procedures used to execute
  most filesystem operations.  These functions will access both the
  in-memory tree of unsynchronized information and the on-disk topology
  to generate a 'merged' result.

  Amoung other things this allows the filesystem to hold operations in a
  memory cache without actually having to mess with the HAMMER topology
  on-disk.  The on-disk topology is then updated in a deferred manner.
  Disk I/O is entirely avoided for self contained operations which create,
  write, and delete related files quickly enough.

* Add unmount sequencing, make mount and df work again.

* Test the reference counting and flushing system on most primary
  structures.

* Test basic buffer cache interactions, reading, writing, and lazy
  synchronization.

* Start tying VNOPS into the infrastructure.  open/close/read/write works
  now via the in-memory cache (none of it is synched to the disk topology
  yet!).  readdir doesn't yet work... the 32 bit cookies are not large
  enough.
18 files changed:
sbin/hammer/hammer_util.h
sbin/hammer/ondisk.c
sbin/newfs_hammer/newfs_hammer.c
sbin/newfs_hammer/newfs_hammer.h
sbin/newfs_hammer/ondisk.c
sys/vfs/hammer/hammer.h
sys/vfs/hammer/hammer_btree.c
sys/vfs/hammer/hammer_cursor.c
sys/vfs/hammer/hammer_cursor.h
sys/vfs/hammer/hammer_disk.h
sys/vfs/hammer/hammer_inode.c
sys/vfs/hammer/hammer_io.c
sys/vfs/hammer/hammer_object.c
sys/vfs/hammer/hammer_ondisk.c
sys/vfs/hammer/hammer_subs.c
sys/vfs/hammer/hammer_transaction.c
sys/vfs/hammer/hammer_vfsops.c
sys/vfs/hammer/hammer_vnops.c