Commit Graph

337 Commits

Author SHA1 Message Date
Ming-Hung Tsai
9837feaee5 [thin_scan] refactoring and performance improvement (#111) 2018-08-15 07:56:45 +01:00
Dennis Schridde
1311447a94 [build] Include boost/optional/optional_io.hpp in thin-provisioning/emitter.h (#102)
This fixes following build failure with Boost 1.67.0:
```
In file included from /usr/include/boost/optional/optional.hpp:33,
                 from /usr/include/boost/optional.hpp:15,
                 from ./thin-provisioning/emitter.h:23,
                 from contrib/thin_sexp_emitter.cc:2:
/usr/include/boost/optional/optional.hpp: In instantiation of ‘std::basic_ostream<_CharT, _Traits>& boost::operator<<(std::basic_ostream<_CharT, _Traits>&, const boost::optional_detail::optional_tag&) [with CharType = char; CharTrait = std::char_traits<char>]’:
./base/indented_stream.h:31:9:   required from ‘{anonymous}::indented_stream& {anonymous}::indented_stream::operator<<(const T&) [with T = boost::optional<unsigned int>]’
contrib/thin_sexp_emitter.cc:105:29:   required from ‘void {anonymous}::sexp_emitter::kv(const char*, const T&) [with T = boost::optional<unsigned int>]’
contrib/thin_sexp_emitter.cc:29:21:   required from here
/usr/include/boost/optional/optional.hpp:1481:3: error: static assertion failed: If you want to output boost::optional, include header <boost/optional/optional_io.hpp>
   BOOST_STATIC_ASSERT_MSG(sizeof(CharType) == 0, "If you want to output boost::optional, include header <boost/optional/optional_io.hpp>");
   ^~~~~~~~~~~~~~~~~~~~~~~
make: *** [contrib/Makefile:15: contrib/thin_sexp_emitter.o] Error 1
```

boost/optional/optional_io.hpp exists since at least Boost 1.34.0, so it is
 safe to include in older versions, too.
2018-06-13 08:42:30 +01:00
Ming-Hung Tsai
582e424560 [space-map-disk] fix the number of free blocks (#93) 2018-04-17 14:00:44 +01:00
Joe Thornber
1433d11f59 [thin-provisioning/metadata] Use latest metadata version (2) 2018-04-17 13:32:49 +01:00
Joe Thornber
abb32897e2 [thin_dump] human_readable emitter didn't print the metadata_snap. 2018-04-17 10:29:31 +01:00
csonto
5b5aa971a0 Detect XML in *_check tools (#86)
* [*_check] Detect XML in cache_check and era_check

This is based on previous commit b10d8d4440.

* [*_check] Fix typo in check_superblock
2017-10-05 13:47:10 +01:00
Joe Thornber
3c761e6822 [all tools] Factor out open_bm() and open_tm.
Many duplicates of this code.
2017-10-05 11:53:40 +01:00
Joe Thornber
99e8459be3 [thin_rmap] tweak an error message. 2017-10-05 08:22:58 +01:00
Joe Thornber
24931b3bda [thin_check] --override-mapping-root 2017-10-04 11:43:13 +01:00
Joe Thornber
5b92f410ec [*_restore] if things go wrong wipe the superblock.
So we don't leave the metadata device with partially restored metadata.
2017-09-28 14:39:24 +01:00
Joe Thornber
48e7ab89a5 [*_dump] Fix segfault when given a tiny metadata file 2017-09-21 10:22:38 +01:00
Joe Thornber
313716028e [thin-metadata-size] -V was exiting with 1 2017-09-19 11:29:35 +01:00
Joe Thornber
3790f2e79c [thin_rmap] Fail if no regions are supplied. 2017-09-19 11:05:00 +01:00
Joe Thornber
f7d79339e8 [man pages] Various updates. 2017-09-18 16:10:56 +01:00
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