git: sys/vfs/hammer: Add HAMMER_ENCODE_UNDO()
Tomohiro Kusumi
tkusumi at crater.dragonflybsd.org
Thu Nov 3 08:48:18 PDT 2016
commit 459a6a40486fd2968e7232f532740844263a6bf3
Author: Tomohiro Kusumi <kusumi.tomohiro at gmail.com>
Date: Thu Nov 3 21:06:14 2016 +0900
sys/vfs/hammer: Add HAMMER_ENCODE_UNDO()
Add and use HAMMER_ENCODE_UNDO(offset) instead of
HAMMER_ZONE_ENCODE(HAMMER_ZONE_UNDO_INDEX, offset),
just like other ENCODE macros available for other zones.
Since zone-3 doesn't take volume# by design (see L136 of
sys/vfs/hammer/hammer_disk.h), HAMMER_ENCODE_UNDO() only
takes offset, but not (volume#, offset). In other words,
UNDO/REDO FIFO is in the root volume.
sys/vfs/hammer/hammer_disk.h
* zone 1 (z,v,o): raw volume relative (offset 0 is the volume header)
* zone 2 (z,v,o): raw buffer relative (offset 0 is the first buffer)
* zone 3 (z,o): undo/redo fifo - fixed zone-2 offset array in volume header
* zone 4 (z,v,o): freemap - only real blockmap
* zone 8 (z,v,o): B-Tree - actually zone-2 address
* zone 9 (z,v,o): meta - actually zone-2 address
* zone 10 (z,v,o): large-data - actually zone-2 address
* zone 11 (z,v,o): small-data - actually zone-2 address
Summary of changes:
sbin/hammer/cmd_blockmap.c | 2 +-
sbin/hammer/cmd_show.c | 2 +-
sbin/hammer/ondisk.c | 7 +++----
sys/vfs/hammer/hammer_disk.h | 2 ++
sys/vfs/hammer/hammer_recover.c | 9 ++++-----
sys/vfs/hammer/hammer_redo.c | 6 ++----
sys/vfs/hammer/hammer_undo.c | 8 +++-----
7 files changed, 16 insertions(+), 20 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/459a6a40486fd2968e7232f532740844263a6bf3
--
DragonFly BSD source repository
More information about the Commits
mailing list