cvs commit: src/sbin/hammer hammer_util.h ondisk.c src/sbin/newfs_hammer newfs_hammer.c src/sys/vfs/hammer hammer.h hammer_blockmap.c hammer_disk.h hammer_freemap.c hammer_vfsops.c
Matthew Dillon
dillon at crater.dragonflybsd.org
Tue Feb 19 16:56:16 PST 2008
dillon 2008/02/19 16:55:51 PST
DragonFly src repository
Modified files:
sbin/hammer hammer_util.h ondisk.c
sbin/newfs_hammer newfs_hammer.c
sys/vfs/hammer hammer.h hammer_blockmap.c hammer_disk.h
hammer_freemap.c hammer_vfsops.c
Log:
HAMMER 29/many: Work on the blockmap, implement the freemap.
* Split the blockmap structure into a blockmap header (in the volume header),
layer1, and layer2 structure. The layer1 structure is 32 bytes, the
layer2 structure is 16 bytes.
Layer1: 262144 32-byte entries (18 bits)
Layer2: 524288 16-byte entries (19 bits)
Bigblock: 23 bits
----------------------------------
Total: 60 bits (1 MTB == 1024 Petabytes)
* Start working on the allocation cycler, but it isn't finished yet.
* Implement the freemap. The freemap is basically a special-cased blockmap.
The top 8 bits of Layer1 are used as a volume identifier. A physical
offset can be looked up via freemap and the layer2 entry will indicate
which virtual offset it has been mapped to. This will allow us to
reallocate blocks when contracting the size of a volume (or if we desire
to reallocate the block generally).
Revision Changes Path
1.10 +8 -2 src/sbin/hammer/hammer_util.h
1.12 +217 -51 src/sbin/hammer/ondisk.c
1.19 +34 -15 src/sbin/newfs_hammer/newfs_hammer.c
1.38 +5 -2 src/sys/vfs/hammer/hammer.h
1.3 +154 -59 src/sys/vfs/hammer/hammer_blockmap.c
1.24 +82 -31 src/sys/vfs/hammer/hammer_disk.h
1.2 +131 -9 src/sys/vfs/hammer/hammer_freemap.c
1.20 +1 -26 src/sys/vfs/hammer/hammer_vfsops.c
http://www.dragonflybsd.org/cvsweb/src/sbin/hammer/hammer_util.h.diff?r1=1.9&r2=1.10&f=u
http://www.dragonflybsd.org/cvsweb/src/sbin/hammer/ondisk.c.diff?r1=1.11&r2=1.12&f=u
http://www.dragonflybsd.org/cvsweb/src/sbin/newfs_hammer/newfs_hammer.c.diff?r1=1.18&r2=1.19&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer.h.diff?r1=1.37&r2=1.38&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_blockmap.c.diff?r1=1.2&r2=1.3&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_disk.h.diff?r1=1.23&r2=1.24&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_freemap.c.diff?r1=1.1&r2=1.2&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_vfsops.c.diff?r1=1.19&r2=1.20&f=u
More information about the Commits
mailing list