thin-provisioning-tools/thin-provisioning
Joe Thornber 9e20465fd1 [thin-repair, thin_dump] When repairing we now hunt for the best btree roots.
We've had a trickle of users who accidentally activate the same pool on a
VM and host at the same time.  Typically the host doesn't do any IO, but
the kernel will still rewrite the superblock on shutdown.  This leaves
the superblock pointing to very out of date btree roots and so we get
massive metadata loss.

This patch changes thin_repair, and thin_dump --repair.  They now hunt
for the most recent, undamaged and consistent roots of the device and
mapping trees, and use that as the starting point of the repair.
2019-04-17 12:17:13 +01:00
..
cache_stream.cc Spin-off syscall-related file operations (#78) 2017-04-29 18:51:52 +01:00
cache_stream.h Switch an auto_ptr to a unique_ptr 2017-03-13 13:20:52 +00:00
chunk_stream.cc
chunk_stream.h
commands.cc [thin_journal_check] Checks journal of block manager activity. 2018-09-24 14:51:46 +01:00
commands.h [thin_journal_check] first code drop 2018-08-28 13:12:20 +01:00
create_xml_data
device_tree.cc [thin] Add default constructor to struct device_details 2016-03-05 14:12:13 +08:00
device_tree.h [thin] Cleanup: move methods before data member declaration 2016-03-06 23:21:09 +08:00
emitter.h [build] Include boost/optional/optional_io.hpp in thin-provisioning/emitter.h (#102) 2018-06-13 08:42:30 +01:00
fixed_chunk_stream.cc
fixed_chunk_stream.h
human_readable_format.cc [thin_dump] human_readable emitter didn't print the metadata_snap. 2018-04-17 10:29:31 +01:00
human_readable_format.h
main.cc
mapping_tree.cc [thin-provisioning] pass the tm by reference to the metadata object 2019-04-04 15:06:41 +01:00
mapping_tree.h [thin-provisioning] pass the tm by reference to the metadata object 2019-04-04 15:06:41 +01:00
metadata_checker.cc
metadata_checker.h
metadata_counter.cc [space map disk] tidy up: add const qualifier 2016-06-20 00:40:10 +08:00
metadata_counter.h [space map disk] tidy up: add const qualifier 2016-06-20 00:40:10 +08:00
metadata_dumper.cc [thin-repair, thin_dump] When repairing we now hunt for the best btree roots. 2019-04-17 12:17:13 +01:00
metadata_dumper.h [thin-repair, thin_dump] When repairing we now hunt for the best btree roots. 2019-04-17 12:17:13 +01:00
metadata.cc [thin-provisioning] Add a new constructor for the metadata class 2019-04-17 12:15:46 +01:00
metadata.h [thin-provisioning] Add a new constructor for the metadata class 2019-04-17 12:15:46 +01:00
pool_stream.cc
pool_stream.h
restore_emitter.cc [thin] fix duplicated counting of mapped blocks in restore emitter 2016-08-10 23:40:48 +08:00
restore_emitter.h
rmap_visitor.cc
rmap_visitor.h
shared_library_emitter.cc [thin_dump] --format custom=<shared lib> 2016-03-24 13:59:08 +00:00
shared_library_emitter.h [thin_dump] --format custom=<shared lib> 2016-03-24 13:59:08 +00:00
static_library_emitter.cc remove debug print 2017-02-06 13:11:10 +03:00
superblock.cc Spin-off syscall-related file operations (#78) 2017-04-29 18:51:52 +01:00
superblock.h [thin_show_metadata] ncurses render 2016-02-26 12:50:17 +00:00
thin_check.cc [thin-provisioning] pass the tm by reference to the metadata object 2019-04-04 15:06:41 +01:00
thin_debug.cc
thin_delta.cc [all tools] Factor out open_bm() and open_tm. 2017-10-05 11:53:40 +01:00
thin_dump.cc [thin-repair, thin_dump] When repairing we now hunt for the best btree roots. 2019-04-17 12:17:13 +01:00
thin_generate_metadata.cc thin_generate_metadata 2016-07-15 11:23:07 +01:00
thin_journal_check.cc [thin_journal_check] Checks journal of block manager activity. 2018-09-24 14:51:46 +01:00
thin_journal.cc [thin_journal_check] Checks journal of block manager activity. 2018-09-24 14:51:46 +01:00
thin_journal.h [thin_journal_check] Checks journal of block manager activity. 2018-09-24 14:51:46 +01:00
thin_ll_dump.cc [thin-provisioning] pass the tm by reference to the metadata object 2019-04-04 15:06:41 +01:00
thin_ll_restore.cc [thin_ll_restore] check preallocation of output file 2016-08-10 23:41:25 +08:00
thin_ls.cc [thin] store the device id in single_mapping_tree_damage_visitor for error reporting 2016-06-20 00:30:25 +08:00
thin_metadata_size.cc [thin-metadata-size] -V was exiting with 1 2017-09-19 11:29:35 +01:00
thin_metadata_size.rb
thin_pool.cc [thin] fix duplicated counting of mapped blocks in restore emitter 2016-08-10 23:40:48 +08:00
thin_pool.h [thin] fix duplicated counting of mapped blocks in restore emitter 2016-08-10 23:40:48 +08:00
thin_repair.cc [thin-repair, thin_dump] When repairing we now hunt for the best btree roots. 2019-04-17 12:17:13 +01:00
thin_restore.cc [*_restore] if things go wrong wipe the superblock. 2017-09-28 14:39:24 +01:00
thin_rmap.cc [all tools] Factor out open_bm() and open_tm. 2017-10-05 11:53:40 +01:00
thin_scan.cc [thin_repair] work in progress 2019-03-29 12:56:31 +00:00
thin_show_duplicates.cc [all tools] Factor out open_bm() and open_tm. 2017-10-05 11:53:40 +01:00
thin_show_metadata.cc [thin_show_metadata] ncurses render 2016-02-26 12:50:17 +00:00
thin_trim.cc Spin-off syscall-related file operations (#78) 2017-04-29 18:51:52 +01:00
variable_chunk_stream.cc
variable_chunk_stream.h
xml_format.cc [emitter] Preserve the flags and version entries in superblock 2016-02-27 15:20:02 +08:00
xml_format.h