diff --git a/thin-provisioning/metadata_dumper.cc b/thin-provisioning/metadata_dumper.cc index 5006fc0..9ba0614 100644 --- a/thin-provisioning/metadata_dumper.cc +++ b/thin-provisioning/metadata_dumper.cc @@ -244,3 +244,14 @@ thin_provisioning::metadata_dump(metadata::ptr md, emitter::ptr e, bool repair) } //---------------------------------------------------------------- + +void +thin_provisioning::metadata_dump_subtree(metadata::ptr md, emitter::ptr e, bool repair, uint64_t subtree_root) { + mapping_emitter me(e); + single_mapping_tree tree(*md->tm_, subtree_root, + mapping_tree_detail::block_time_ref_counter(md->data_sm_)); + walk_mapping_tree(tree, static_cast(me), + *mapping_damage_policy(repair)); +} + +//---------------------------------------------------------------- diff --git a/thin-provisioning/metadata_dumper.h b/thin-provisioning/metadata_dumper.h index c96d22e..007256a 100644 --- a/thin-provisioning/metadata_dumper.h +++ b/thin-provisioning/metadata_dumper.h @@ -29,6 +29,7 @@ namespace thin_provisioning { // the dumper to do it's best to recover info. If not set, any // corruption encountered will cause an exception to be thrown. void metadata_dump(metadata::ptr md, emitter::ptr e, bool repair); + void metadata_dump_subtree(metadata::ptr md, emitter::ptr e, bool repair, uint64_t subtree_root); } //----------------------------------------------------------------