[lvm-devel] Regression: 9e20465fd1f71 [thin-repair, thin_dump] When repairing we now hunt for the best btree roots.
Eric Wheeler
lvm-devel at lists.ewheeler.net
Fri Sep 4 20:00:47 UTC 2020
Hello Joe,
It used to be that flags.opts was passed into metadata_dump even when
--repair was specified. Now that metadata_dump and metadata_repair are
split into different functions, flags.opts is not passed to
metadata_repair so options like --dev-id are ignored when --repair is
specified.
Looking at the difference in metadata_dump and metadata_repair, these
functions are basically the same except the superblock recognition and
mapping/details_damage_policy(true) which used to be handled by
opts.repair_ (instead of true/false).
What do you think about reducing the code duplication in metadata_repair
and metadata_dump by factoring out the common code into a function like
_metadata_dump and then always passing in flags.opts?
We would like to retain the ability to run a repair on a metadata snapshot
for a single dev_id. At the moment we used a customer emitter
(contrib/ewheeler_emitter.cc) which works fine on metadata snapshots
without --repair enabled, but when --repair is enabled we get metadata for
every volume in the tree which ends up being huge (and invalid) because we
have so many snapshots.
-Eric
--
Eric Wheeler
More information about the lvm-devel
mailing list