git: sbin/hammer: Use last active big-block to limit recovery scan range
Tomohiro Kusumi
tkusumi at crater.dragonflybsd.org
Sat Dec 10 05:49:45 PST 2016
commit e3cefcca0f8c732eefd2b64b9ab39bb8b06784b3
Author: Tomohiro Kusumi <kusumi.tomohiro at gmail.com>
Date: Sat Dec 10 14:41:43 2016 +0900
sbin/hammer: Use last active big-block to limit recovery scan range
This commit is to fix a bug mentioned in f2dd4b0c. This commit
uses offset of the last active big-block (big-block with maximum
zone-2 offset whose layer2->zone is neither 0,4,15), as an upper
limit of scan range, so it doesn't scan beyond actual consumption.
Note that this upper limit is used only if all layer1/2 entries
have correct CRC values. Otherwise the entire image is scanned
as usual (unless quick option is used).
Note that this upper limit doesn't necessarily equal a big-block
before the first unused big-block offset (i.e. layer2->zone == 0),
because reblock could locate unused big-block between used ones.
Note that using the upper limit also tries to avoid recovery of
irrelevant files from old filesystem that could exist beyond the
upper limit (if not perfect). It also speeds up recovery process.
Summary of changes:
sbin/hammer/cmd_recover.c | 103 ++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 100 insertions(+), 3 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/e3cefcca0f8c732eefd2b64b9ab39bb8b06784b3
--
DragonFly BSD source repository
More information about the Commits
mailing list