git: hammer2 hammer2 - Implelment variable-sized physical storage allocations
Matthew Dillon
dillon at crater.dragonflybsd.org
Mon Mar 19 10:48:13 PDT 2012
commit 866d527342ae32a12e2795bbb238165e2d97da21
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Mon Mar 19 10:38:53 2012 -0700
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.
Summary of changes:
sys/vfs/hammer2/TODO | 6 +
sys/vfs/hammer2/donew | 5 +
sys/vfs/hammer2/dossd | 11 ++
sys/vfs/hammer2/hammer2.h | 5 +-
sys/vfs/hammer2/hammer2_chain.c | 168 ++++++++++++++++++++++-
sys/vfs/hammer2/hammer2_disk.h | 10 +-
sys/vfs/hammer2/hammer2_inode.c | 13 ++
sys/vfs/hammer2/hammer2_vnops.c | 278 +++++++++++++++++++++++++--------------
8 files changed, 386 insertions(+), 110 deletions(-)
create mode 100755 sys/vfs/hammer2/donew
create mode 100755 sys/vfs/hammer2/dossd
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/866d527342ae32a12e2795bbb238165e2d97da21
--
DragonFly BSD source repository
More information about the Commits
mailing list