Commit Graph

124 Commits

Author SHA1 Message Date
e3b7d82569 [cache_restore] v2 dirty bitset root wasn't being written to superblock.
Resulting in corrupt restored data.
2017-11-13 14:02:16 +00:00
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
3c761e6822 [all tools] Factor out open_bm() and open_tm.
Many duplicates of this code.
2017-10-05 11:53:40 +01:00
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
48e7ab89a5 [*_dump] Fix segfault when given a tiny metadata file 2017-09-21 10:22:38 +01:00
f7d79339e8 [man pages] Various updates. 2017-09-18 16:10:56 +01:00
88b0c2ebae [cache-restore] Fix crash with --override-metadata-version flag.
If the actual metadata version is 1, then the dirty bitset will not be
present.  But the superblock was trying to write it because of the
overridden md version.
2017-08-29 13:17:45 +01:00
4da8d19f29 [cache_restore] The metadata version and clean shutdown flags were
swapped.

Reveal by failing --omit-clean-shutdown test
2017-08-29 12:33:32 +01:00
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
13323bd52c [cache_check] Don't even open the dev writeable if
--clear-needs-check-flag is not set
2017-03-27 08:58:56 -04:00
b0e0432737 [cache] dirty root wasn't being packed properly 2017-03-27 08:57:43 -04:00
ba8d5ab5e4 [cache_restore] --debug-override-metadata-version wasn't working 2017-03-01 10:36:34 -05:00
d52e934ce2 Merge branch 'v0.7-devel' into 2016-14-08-cache-format2 2017-02-27 09:37:01 -05:00
d710cad52b [cache tools] knock out OPEN from the metadata enum 2016-10-07 15:01:16 -04:00
05c4b7b400 [cache] a lot of format 2 changes 2016-09-30 11:21:20 -04:00
0c78d8d0c5 fix compilation for gcc 5.4.0 2016-09-07 13:49:36 +00:00
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
4779fb9b80 [various] Improve documentation
Output file must be preallocated.
2016-07-11 14:53:03 +01:00
8989bb0f32 [caching] cache_writeback 2016-06-14 16:29:37 +01:00
a94bfea798 [block-cache] unit tests + debug io_engine and copier 2016-06-07 11:12:27 +01:00
c8fec7ec40 [cache_writeback] Coded, needs testing 2016-04-14 08:54:32 +01:00
4573ebb218 [cache_writeback] work in progress 2016-03-17 15:15:52 +00:00
b8659853bb [cache_writeback] stub cache_writeback 2016-03-08 15:27:22 +00:00
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
778c153c1e [block-cache] Add check_raw() to bcache::validator 2016-02-27 15:21:13 +08:00
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
c93e728ef4 [base] introduce a command type that gets registered with the app 2016-01-08 12:51:52 +00:00
271ff67f91 Cache check close RO opened device before reopen.
When check_check is used with --clear-needs-check-flag option,
device needs to be opened in RW exclusive mode, but for this
existing RO exlusive open must be closed.

LVM2 will consider version 0.5.3 as a version without flag support
for cache_check since it cannot successfully pass cache_check.

TODO: when 'RO' parts detects there is nothing to 'clear' it should
completely skip RW open to avoid udev rule processing.
2015-07-28 14:37:44 +01:00
6ab0833b2e cache_check: add --clear-needs-check 2015-06-09 14:01:22 +01:00
25b4b526f4 Introduce error_string() as a portable replacement for strerror_r() 2015-01-16 12:54:09 +00:00
150a3c486d Fix these errors:
caching/superblock.cc:306: error: reference to 'validator' is ambiguous
caching/superblock.cc:271: error: candidates are: namespace validator { }
./block-cache/block_cache.h:22: error:                 class bcache::validator

caching/superblock.cc:316: error: reference to 'validator' is ambiguous
caching/superblock.cc:271: error: candidates are: namespace validator { }
./block-cache/block_cache.h:22: error:                 class bcache::validator

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
2015-01-16 10:13:36 +00:00
691ad88261 [caching/hint_array.cc] Fix ambigious array (C++11)
Template array exist in the namespace persistent_data as well as in std
of C++11. Explicitly use the one from persistent_data.

This fixes compilation bugs with CXXFLAGS=-std=gnu++11 together with
gcc 4.8.3 and boost 1.55.
2014-11-15 16:49:08 +01:00
baa70ecfe4 [caching/hint_array.cc] Fix ambigious shared_ptr (C++11)
Class shared_ptr exist in the namespace std for C++11 as well as in boost.
Explicitly use the one from boost in order to be compatible.

This fixes compilation bugs with CXXFLAGS=-std=gnu++11 together with
gcc 4.8.3 and boost 1.55.
2014-11-15 16:49:08 +01:00
4c026458d5 Squash a couple of annoying compiler warnings 2014-09-02 10:13:26 +01:00
6f8b7e2914 [all] Build a single executable 2014-08-27 14:01:31 +01:00
828f654800 [*_restore] Add progress bar to cache_restore and era_restore.
A lot of refactoring common code between the restore tools.
2014-08-26 13:05:21 +01:00
d17ad86a88 [*_restore] Use a little wrapper class for the expat XML_Parser to ensure it gets destroyed. 2014-08-26 11:23:29 +01:00
a7c96c0e1e [everything] Fix circular shared pointer references.
We had a cycle from transaction_manager <-> space_map, and also from
the ref_counters back up to the tm.

This prevented objects being destroyed when various programs exited.

From now on we'll try and only use a shared ptr if ownership is
implied.  Otherwise a reference will be used (eg, for up pointers).
2014-08-26 11:14:49 +01:00
1d12d0ff8e remove empty destructor 2014-08-07 15:42:10 +01:00
3e5c02459c whitespace 2014-08-06 16:30:26 +01:00
1d38b390b5 Factor common code out of the xml_format files. 2014-08-06 15:29:02 +01:00
f06a2673c5 wip 2014-07-29 11:34:26 +01:00
7e870ea5a6 start removing block_manager<>::block 2014-07-25 14:46:51 +01:00
b32908d5c2 work in progress 2014-07-25 10:35:04 +01:00
d517684c95 Initial code drop for merging block_cache 2014-07-22 16:41:39 +01:00
e77e8715b0 Remove ambiguity between boost::uint64_t and ::uint64_t.
This has been causing people problems on uclibc builds.
2014-07-02 08:19:20 +00:00
c5c699e563 whitespace 2014-06-16 13:44:43 +01:00
ebb49db5d3 cache_calc_blocks; tidy up the calculation of nr blocks 2014-06-16 13:42:13 +01:00
5fe5d213b7 Merge branch 'master' of github.com:jthornber/thin-provisioning-tools into era
Conflicts:
	Makefile.in
2014-01-31 22:35:04 +00:00
344f4b1e08 Factor out base/indented_stream.h 2014-01-31 13:43:39 +00:00