From ced9929ca6d85b32b83d81fbc3148b94a5a10e87 Mon Sep 17 00:00:00 2001 From: Ming-Hung Tsai Date: Sat, 27 Feb 2016 15:20:31 +0800 Subject: [PATCH] [metadata_dumper] Support dump a bottom-level data mapping tree --- thin-provisioning/metadata_dumper.cc | 11 +++++++++++ thin-provisioning/metadata_dumper.h | 1 + 2 files changed, 12 insertions(+) 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); } //----------------------------------------------------------------