Commit Graph

373 Commits

Author SHA1 Message Date
Joe Thornber
b10d8d4440 [thin_check] Spot XML and be helpful. 2017-09-15 15:22:04 +01:00
Joe Thornber
a424417475 [thin_delta] long opts weren't being terminated properly.
This caused a seg fault with an unknown switch
2017-09-15 12:28:19 +01:00
Ming-Hung Tsai
b7d418131d Spin-off syscall-related file operations (#78)
* [file_utils] spin-off syscall-related file operations

1. Eliminate the potential circular dependency between
   persistent-data/block.h and persistent-data/file_utils.h,
   if the former one wants to include the latter.
2. Avoid namespace pollution by removing the "using namespace std"
   declaration in block.tcc.
3. Correct the header hierarchy: base/xml_utils.h now no longer
   depends on the higher-level persistent-data/file_utils.h

* [file_utils] support block files in get_file_length()
2017-04-29 18:51:52 +01:00
Joe Thornber
4c311cf6d4 Switch an auto_ptr to a unique_ptr 2017-03-13 13:20:52 +00:00
Thanos Makatos
73e583e662 remove debug print 2017-02-06 13:11:10 +03:00
Thanos Makatos
0c78d8d0c5 fix compilation for gcc 5.4.0 2016-09-07 13:49:36 +00:00
Ming-Hung Tsai
45dbc2593a [thin_ll_restore] check preallocation of output file 2016-08-10 23:41:25 +08:00
Ming-Hung Tsai
6863db6f86 [thin] fix duplicated counting of mapped blocks in restore emitter 2016-08-10 23:40:48 +08:00
Joe Thornber
e6562c6110 thin_generate_metadata 2016-07-15 11:23:07 +01:00
Joe Thornber
52de2dd38e Merge branch 'v0.7-devel' of github.com:jthornber/thin-provisioning-tools into v0.7-devel 2016-07-11 15:51:58 +01:00
Joe Thornber
c2fdbad322 Merge branch '2016-07-07-improve-thin-repair-error-message' into v0.7-devel
Conflicts:
	Makefile.in
	VERSION
	configure.ac
	persistent-data/file_utils.cc
2016-07-11 15:51:30 +01:00
Joe Thornber
4779fb9b80 [various] Improve documentation
Output file must be preallocated.
2016-07-11 14:53:03 +01:00
Ming-Hung Tsai
7eac48793c [space map disk] tidy up: add const qualifier 2016-06-20 00:40:10 +08:00
Ming-Hung Tsai
3439dbfdfc [metadata_counter] hide count_trees() and count_space_maps() 2016-06-20 00:30:26 +08:00
Ming-Hung Tsai
9e7af6b677 [metadata_counter] remove explicit try/catch when counting data space map
Unlike metadata_index_store, the constructor of btree_index_store
doesn't throw exceptions.
2016-06-20 00:30:26 +08:00
Ming-Hung Tsai
e8f1bda1a5 [thin] store the device id in single_mapping_tree_damage_visitor for error reporting
1. fix the damage type for single_mapping_tree_damage_visitor
2. walk_mapping_tree() now requires the device id
3. update metadata_dumper and thin_ls for the new walk_mapping_tree()
2016-06-20 00:30:25 +08:00
Joe Thornber
a3eac8d5d8 Merge branch 'v0.7-devel' of github.com:jthornber/thin-provisioning-tools into v0.7-devel 2016-06-14 16:33:00 +01:00
Joe Thornber
642740e1b6 Merge branch '2016-03-08-cache-writeback' into v0.7-devel 2016-06-14 16:30:16 +01:00
Ming-Hung Tsai
e985b8b3be [thin_scan][thin_ll_*] fix the data type for getopt_long return value to int
For toolchains represent char as unsigned type
2016-05-20 00:54:31 +08:00
Ming-Hung Tsai
55ecf87439 [thin_ll_restore] fix the data type of blocknr to uint64_t 2016-05-20 00:53:51 +08:00
Joe Thornber
3fb4177656 [thin_trim] more bug fixing 2016-04-08 17:07:04 +01:00
Joe Thornber
3c02151a4f Merge branch 'master' into v0.7-devel
Conflicts:
	persistent-data/file_utils.cc
	persistent-data/file_utils.h
2016-04-05 13:13:10 +01:00
Thanos Makatos
431f2ab50a allow tmakatos (a binary) emitter to be statically compiled
It is trivial to implement static compilation of the rest of the 3rd party
emitters.
2016-04-06 15:56:09 +03:00
Joe Thornber
866986b883 [thin_trim] FInally get thin_trim emitting the right discards 2016-04-05 12:27:00 +01:00
Ming-Hung Tsai
f20e2a0f40 [thin_check] cleanup: use metadata_counter 2016-04-05 16:09:58 +08:00
Ming-Hung Tsai
c8aabf2948 [metadata_counter] fix repeated counting of trees 2016-04-05 16:09:58 +08:00
Ming-Hung Tsai
c6c5086068 [thin_ll_dump] cleanup: use btree_node_checker 2016-04-05 16:09:58 +08:00
Joe Thornber
2288fc4565 Merge branch 'master' into 2016-02-03-fix-thin-trim 2016-03-31 16:39:54 +01:00
Joe Thornber
c7813e07e4 [thin_dump] --format custom=<shared lib>
Allow people to use their own emitters held in a shared library.

Put a trivial emitter in contrib/ as an example.
2016-03-24 13:59:08 +00:00
Joe Thornber
872a933072 [thin_dump] start refactoring format code 2016-03-23 10:52:04 +00:00
Joe Thornber
4370f048c0 [thin_dump] --skip-mappings 2016-03-22 15:01:37 +00:00
Joe Thornber
ad4fd30a27 Merge branch 'v0.7-devel' of github.com:jthornber/thin-provisioning-tools into v0.7-devel 2016-03-22 14:47:11 +00:00
Joe Thornber
a3f4940f1e [thin_dump] --dev-id 2016-03-22 14:46:33 +00:00
Joe Thornber
8b2ec7a3aa Merge branch 'master' into v0.7-devel
Conflicts:
	VERSION
	persistent-data/space-maps/disk.cc
	persistent-data/space-maps/disk.h
2016-03-22 12:04:51 +00:00
Joe Thornber
b0e2d0e6a0 [thin_repair, metadata] Try harder to get the number of data blocks
when opening the metadata.
2016-03-21 17:17:57 +00:00
Joe Thornber
2cf0c84ce3 [thin_repair] we need to read the space maps after all to get the data
volume size.
2016-03-21 15:36:49 +00:00
Joe Thornber
e5363621ba Merge pull request #51 from mingnus/v0.6.2-repairtool
[thin_ll_dump] Fix option -m to accept optional argument
2016-03-20 14:36:10 +00:00
Ming-Hung Tsai
055623b90f [thin_ll_dump] Fix option -m to accept optional argument 2016-03-19 13:59:38 +08:00
Joe Thornber
0bc126fbeb Merge branch 'v0.7-devel' into 2016-03-08-cache-writeback
Conflicts:
	thin-provisioning/commands.h
2016-03-08 16:00:31 +00:00
Joe Thornber
5cbef4f6ef [thin_ll_*] move these to dev tools 2016-03-08 15:52:12 +00:00
Joe Thornber
b8659853bb [cache_writeback] stub cache_writeback 2016-03-08 15:27:22 +00:00
Seth Jennings
38f67676e4 get stats in bytes 2016-03-07 15:42:24 -06:00
Joe Thornber
e670a27638 Merge pull request #46 from mingnus/v0.6.2-repairtool
Code cleanup for new dev-tools
2016-03-06 16:15:35 +00:00
Ming-Hung Tsai
220ece1dc8 [thin] Cleanup: move methods before data member declaration 2016-03-06 23:21:09 +08:00
Ming-Hung Tsai
8232feb855 [thin_scan] Cleanup: remove unnecessary variables 2016-03-06 11:42:38 +08:00
Ming-Hung Tsai
9f15c5589f [thin_scan] Cleanup: move methods before data member declaration 2016-03-06 11:42:38 +08:00
Joe Thornber
752163b681 Merge pull request #45 from mingnus/v0.6.2-repairtool
Minor fixes for new dev-tools
2016-03-05 15:36:12 +00:00
Ming-Hung Tsai
6fb5f8241d [thin_scan] Factor out range manipulation code 2016-03-05 22:31:09 +08:00
Ming-Hung Tsai
400613305c [thin_ll_restore] Cleanup: use device_details' constructor 2016-03-05 14:12:58 +08:00
Ming-Hung Tsai
08219a60b6 [thin] Add default constructor to struct device_details 2016-03-05 14:12:13 +08:00
Joe Thornber
8676198e76 [file_utils] rename get_nr_blocks() -> get_nr_metadata_blocks() and introduce get_nr_blocks() 2016-03-04 10:43:58 +00:00
Joe Thornber
286f70ceac Merge remote-tracking branch 'remotes/github-m-h-tsai/v0.6.2-repairtool' into 2016-02-29-mingus-merge
Conflicts:
	Makefile.in
	VERSION
	thin-provisioning/commands.cc
	thin-provisioning/commands.h
	thin-provisioning/thin_delta.cc
2016-02-29 10:29:28 +00:00
Ming-Hung Tsai
08a7093cd5 [thin_ll_dump][thin_ll_restore] first draft 2016-02-27 15:24:28 +08:00
Ming-Hung Tsai
b05b9aa227 [thin_scan] first draft 2016-02-27 15:24:14 +08:00
Ming-Hung Tsai
80783e7729 Add metadata_counter.{h,cc} 2016-02-27 15:23:06 +08:00
Ming-Hung Tsai
778c153c1e [block-cache] Add check_raw() to bcache::validator 2016-02-27 15:21:13 +08:00
Ming-Hung Tsai
992ad02ce9 [restore_emitter] Recount device_details::mapped_blocks_ 2016-02-27 15:20:56 +08:00
Ming-Hung Tsai
ced9929ca6 [metadata_dumper] Support dump a bottom-level data mapping tree 2016-02-27 15:20:31 +08:00
Ming-Hung Tsai
7ec47158b5 [emitter] Preserve the flags and version entries in superblock 2016-02-27 15:20:02 +08:00
Ming-Hung Tsai
b47c02ed8b Show the wanted checksum in bad-superblock-checksum exception 2016-02-27 15:04:08 +08:00
Joe Thornber
e78de5d3ad [thin_show_metadata] ncurses render 2016-02-26 12:50:17 +00:00
Joe Thornber
c4215c0cf6 [thin_show_metadata] thin_show_blocks.cc -> thin_show_metadata.cc 2016-02-24 15:32:05 +00:00
Joe Thornber
0349956015 Merge branch 'low_level_examine_metadata' into merge-show-blocks
Conflicts:
	.gitignore
	Makefile.in
	persistent-data/space-maps/disk.cc
2016-02-24 15:24:43 +00:00
Joe Thornber
a5a53648c9 Merge branch '2015-08-19-thin-show-duplicates' into merge-thin-ls
Conflicts:
	Makefile.in
	block-cache/block_cache.h
	main.cc
	thin-provisioning/commands.h
2016-02-24 14:31:51 +00:00
Joe Thornber
5f879237f5 [build] add --enable-dev-tools configure flag
This builds tools that I want to keep in the same code base, but not
intended for general release.
2016-02-24 13:41:43 +00:00
Joe Thornber
0ec27c7835 [thin_delta] backport cherry-picked changes to c++98 2016-02-18 11:37:51 +00:00
Joe Thornber
a21cee55c7 [thin-delta] fix bug in earlier refactor 2016-02-18 11:34:19 +00:00
Joe Thornber
2461cdce43 [thin_delta] tidy up the comparison function 2016-02-18 11:34:09 +00:00
Joe Thornber
f193a70a31 [thin-delta] fix bug in earlier refactor 2016-02-18 11:31:43 +00:00
Joe Thornber
1f10017635 [thin_delta] tidy up the comparison function 2016-02-17 15:17:02 +00:00
Joe Thornber
7c2b3fb671 [thin_delta] Fix bug when comparing the mappings 2016-02-17 14:35:11 +00:00
Joe Thornber
0d510924d5 [thin_delta] set nr_data_blocks to zero if there are no space maps.
ie. a metadata_snap is being used.
2016-02-17 14:35:02 +00:00
Joe Thornber
768bbd2715 [thin_delta] Fix bug when comparing the mappings 2016-02-17 11:44:44 +00:00
Joe Thornber
09ce099c2f [thin_delta] set nr_data_blocks to zero if there are no space maps.
ie. a metadata_snap is being used.
2016-02-17 10:42:42 +00:00
Joe Thornber
767c39cf71 [build] switch to c++11
Conflicts:
	Makefile.in
	chunker/cache_stream.cc
	chunker/cache_stream.h
	thin-provisioning/thin_archive.cc
	thin-provisioning/thin_show_duplicates.cc
	unit-tests/Makefile.in
2016-02-16 16:45:44 +00:00
Joe Thornber
2815aeace9 [thin_repair] fix regression in thin_repair
When opening the corrupted metadata we don't need to touch the space
maps.  This used to be achieved by pretending we were opening a
metadata snap at block 0 (superblock location).  But got changed in
the recent rationalisation of the metadata constructors.

This patch introduces a bool to the metadata OPEN constructor that
says whether the space maps are needed or not.
2016-02-16 14:08:43 +00:00
Joe Thornber
6101398b02 Merge branch 'master' of github.com:jthornber/thin-provisioning-tools 2016-02-10 14:25:50 +00:00
Joe Thornber
c8c4442b2f [thin_dump] We can't give the number of data blocks with a metadata snap.
No space maps.
2016-02-10 13:34:07 +00:00
Joe Thornber
0fced25b3e [thin_dump, thin_restore] remove some dead code 2016-02-04 15:24:16 +00:00
Joe Thornber
c369045790 Merge branch 'master' of github.com:jthornber/thin-provisioning-tools
Conflicts:
	thin-provisioning/metadata.cc
	thin-provisioning/thin_trim.cc
2016-01-20 15:37:04 +00:00
Joe Thornber
f385198cfc [thin_ls] get it working with a metadata snap 2016-01-20 14:45:38 +00:00
Joe Thornber
7a4a5aa87e [thin_ls] fluff 2016-01-20 13:25:09 +00:00
Joe Thornber
944b9c0c57 [thin_ls] wire up -o 2016-01-20 06:59:55 +00:00
Joe Thornber
e15b11edb1 [thin_ls, base] Factor out grid_layout 2016-01-20 06:58:59 +00:00
Joe Thornber
5aaa26fe34 [thin_ls] only run pass1 if needed 2016-01-19 15:50:15 +00:00
Joe Thornber
f3e23c5417 [thin_ls] add --no-headers 2016-01-19 14:56:48 +00:00
Joe Thornber
f6f38fbc1f [thin_ls] tweak enum names 2016-01-19 14:50:04 +00:00
Joe Thornber
8030a98bd8 [thin_ls] add MAPPED_SECTORS, EXCLUSIVE_SECTORS, SHARED_SECTORS 2016-01-19 14:43:37 +00:00
Joe Thornber
3dd45e1ceb [thin_ls] tweak the field names 2016-01-19 14:30:13 +00:00
Joe Thornber
87d8d630f6 [thin_ls] more tidying 2016-01-19 14:16:02 +00:00
Joe Thornber
c5a1a814f3 [thin_ls] rationalise the field names by using a static array of names 2016-01-19 14:11:31 +00:00
Joe Thornber
d65bf29eb7 [thin_ls] change default fields 2016-01-19 13:54:15 +00:00
Joe Thornber
208fdd86e6 [thin_ls] add support for --format 2016-01-19 13:40:36 +00:00
Joe Thornber
7ce4e451ff [base, thin_ls] factor out disk_units code 2016-01-19 11:40:00 +00:00
Joe Thornber
47bd31da8d [thin_ls] more work on thin_ls 2016-01-19 11:16:25 +00:00
Joe Thornber
c3973c044c [thin_ls] First code drop.
Output still needs formatting.  More testing needed in dmtest.
2016-01-12 15:02:19 +00:00
Joe Thornber
c93e728ef4 [base] introduce a command type that gets registered with the app 2016-01-08 12:51:52 +00:00
Joe Thornber
a709b9718b [thin] Make the metadata class resposible for locating metadata snapshots 2015-12-15 10:08:07 +00:00
Joe Thornber
30a3bf67d1 [thin tools] Change the metadata contructors to take a block_manager<>::ptr
Also check any metadata snap passed in matches what's in the superblock.
2015-12-14 15:29:57 +00:00
Ming-Hung Tsai
e528fa1972 Add BLKDISCARD definition 2015-11-27 23:38:42 +08:00