hammer2 - Implelment variable-sized physical storage allocations
authorMatthew Dillon <dillon@apollo.backplane.com>
Mon, 19 Mar 2012 17:38:53 +0000 (10:38 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Mon, 19 Mar 2012 17:47:51 +0000 (10:47 -0700)
commit866d527342ae32a12e2795bbb238165e2d97da21
tree47a689f3259f1af6cbbef3c64516b0515ab1e7d9
parent90200001b16044b0bab8b0fc81369c9522962f86
hammer2 - Implelment variable-sized physical storage allocations

* The physical block which straddles the file EOF now only allocates
  the nearest power of two >= 1024 bytes sufficient to hold the file.

  Note that files <= 512 bytes still fit in the inode embedded data area.

  This results in much, much better packing of small files.

* Remove most restrictions on logical/physical size mismatches.

  This also opens the door in the future for variable-sized indirect blocks.

* The strategy read code is now a lot smarter on optimizing to a direct-read.
  (direct writes are still not supported yet).  The code should also be
  more readable now.

* Rewrite the file truncation/extension code to use the new
  hammer2_chain_resize() function.

* Correct several bugs in the buffer offset calculations when pulling 16K
  logical buffers out of 64K physical buffers.
sys/vfs/hammer2/TODO
sys/vfs/hammer2/donew [new file with mode: 0755]
sys/vfs/hammer2/dossd [new file with mode: 0755]
sys/vfs/hammer2/hammer2.h
sys/vfs/hammer2/hammer2_chain.c
sys/vfs/hammer2/hammer2_disk.h
sys/vfs/hammer2/hammer2_inode.c
sys/vfs/hammer2/hammer2_vnops.c