Commit Graph

1446 Commits

Author SHA1 Message Date
Joe Thornber de7c9a5781 [thin_journal_check] Checks journal of block manager activity.
You need to apply doc/bm-journal.patch to create the journal.

thin_journal_check confirms that if the machine had crashed at any time
during the test run no metadata corruption would have occured.
2018-09-24 14:51:46 +01:00
Joe Thornber 70cdfe12a2 [thin_journal_check] first code drop 2018-08-28 13:12:20 +01:00
Ming-Hung Tsai 9837feaee5 [thin_scan] refactoring and performance improvement (#111) 2018-08-15 07:56:45 +01:00
Joe Thornber a512b8754b Revert "fix compile failed with libc musl (#103)"
This reverts commit 9311aa6483.
2018-08-02 07:12:22 +01:00
hongxu-jia 9311aa6483 fix compile failed with libc musl (#103)
There is a failure while compiling with libc musl:
[snip]
|./block-cache/io_engine.h:18:17: error: expected
unqualified-id before numeric constant
|  unsigned const PAGE_SIZE = 4096;
[snip]

The musl defeines macro PAGE_SIZE, undef it conditionally
could fix the issue.

http://musl.openwall.narkive.com/tO8vrHdP/why-musl-define-page-size

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
2018-08-01 07:10:26 +01:00
Joe Thornber 82ff03e5c1 Merge branch 'master' of github.com:jthornber/thin-provisioning-tools 2018-06-21 10:11:27 +01:00
Joe Thornber 68284c12a8 Merge branch '2018-04-25-thin-discard-bug' 2018-06-21 10:11:21 +01:00
Joe Thornber 498057d00e ft-lib: add discard() 2018-06-21 10:06:01 +01:00
Joe Thornber cfe421ab8b Merge commit '570e11b2da6ee55bc755f5211cf80c4f942b4644' 2018-06-13 16:58:07 +01:00
Joe Thornber 570e11b2da [dmtests] Add failing test thin/discard/recover-space
See bz1563697
2018-06-13 16:54:36 +01:00
Joe Thornber b6ba3a070d [restore_emitter] squash a strncpy warning 2018-06-13 12:50:48 +01:00
Joe Thornber af785461e9 [build] [CXX] -> [CC] for C files 2018-06-13 12:49:57 +01:00
Joe Thornber 80e046a7df [build] support separate build directories 2018-06-13 09:34:14 +01:00
Joe Thornber c1e6adc72c [build] support separate build directories 2018-06-13 09:33:25 +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
Dennis Schridde bc7864dae8 [build] Fix static build by including contrib/Makefile early (#100)
Closes: #99
2018-06-13 08:41:53 +01:00
Ming-Hung Tsai 4b08c7793d [space map] fix accounting of allocatable blocks (#98)
Preserve the input block first to avoid reusing it in subsequent
shadow operations, e.g., shadow another block when releasing
a recursive lock. (issue #97)
2018-06-07 07:45:37 +01:00
Jörg Thalheim 6a7351da0d Fix musl build (#96)
a) Fix build if limits.h provides definition for PAGE_SIZE, as musl does w/musl per XSI[1] although it's apparently optional [2].
   This value is only provided when it's known to be a constant, to avoid the need to discover the value dynamically.
b) If not using system-provided (kernel headers, or libc headers, or something) use the POSIX approach of querying the value
   dynamically using sysconf(_SC_PAGE_SIZE) instead of hardcoded value that hopefully is correct.
[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html
[2] http://www.openwall.com/lists/musl/2015/09/11/8

This patch originate from:

  https://raw.githubusercontent.com/voidlinux/void-packages/a0ece13ad7ab2aae760e09e41e0459bd999a3695/srcpkgs/thin-provisioning-tools/patches/musl.patch

and was also applied in NixOS:

  https://github.com/NixOS/nixpkgs/pull/40559/

cc @dtzWill
2018-05-22 14:02:49 +01:00
Joe Thornber 5d3197b8ab [build] quieten build of C files 2018-04-25 14:05:28 +01:00
Joe Thornber 6f936992b8 bump version 2018-04-23 10:41:48 +01:00
Joe Thornber 1172b2f450 [functional-tests] with-temp-file-sized now takes *either* bytes or a disk-size object 2018-04-18 15:12:28 +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 e619c6edd0 Merge branch 'master' of github.com:jthornber/thin-provisioning-tools 2018-04-17 13:33:32 +01:00
Joe Thornber 1433d11f59 [thin-provisioning/metadata] Use latest metadata version (2) 2018-04-17 13:32:49 +01:00
Joe Thornber 58048dc178 [file_utils] Use aligned memory in zero_superblock 2018-04-17 11:42:43 +01:00
Joe Thornber abb32897e2 [thin_dump] human_readable emitter didn't print the metadata_snap. 2018-04-17 10:29:31 +01:00
Todd Gill 6046ebd4c4 Add autoconf step to Building instructions (#92)
The configure script doesn't exist until autoconf is run.

Signed-off-by: Todd Gill <tgill@redhat.com>
2018-04-17 10:09:15 +01:00
Robert Northard 0eab1d5676 Correct type readme for thin_restore command (#91) 2018-04-17 10:04:20 +01:00
Joe Thornber 5bac06d68f [man] Update manpage for thin_dump
--metadata-snap=<block nr>

Wasn't clear.
2018-01-31 14:39:24 +00:00
Joe Thornber cf9ab80f86 [functional-tests] Fix (thin metadata)
It was using the old, spine based interface for btree-each
2018-01-25 16:11:43 +00:00
Joe Thornber 2fd6723712 [functional-tests/block-manager] wrap the C ptr
So we get some extra error checking.
2018-01-25 15:48:56 +00:00
Joe Thornber 12c760f05c [ft-lib/bcache] add a check to list_pop() 2018-01-25 15:47:12 +00:00
Joe Thornber 1122b9a423 [functional-tests] Code up an equivalent of get_opt_long() 2018-01-25 15:46:27 +00:00
Joe Thornber 54c03f10e6 Merge branch 'master' of github.com:jthornber/thin-provisioning-tools 2018-01-08 10:52:32 +00:00
Joe Thornber 2aa6c05c4b [functional-tests] simplify (thin create devices-in-reverse-order) 2017-12-20 09:01:46 +00:00
Joe Thornber 0d4fdcc687 [functional-tests] simplify (thin create devices-in-reverse-order) 2017-12-20 08:31:38 +00:00
Joe Thornber 05151c648c [functional-tests] from-to loop macro 2017-12-20 08:31:17 +00:00
Joe Thornber fa8d691744 [functional-tests] Improve (thin create devices-in-reverse-order) 2017-12-19 17:25:10 +00:00
Joe Thornber 2fe7a884a2 [functional-tests] (thin create devices-in-reverse-order) 2017-12-19 15:44:33 +00:00
Joe Thornber 324d17981a [functional-tests] Get (thin delete recover-space) working 2017-12-18 11:43:33 +00:00
Joe Thornber 0dc237c356 [functional-tests] Move get-dev-size to C code
Saves forking blockdev
2017-12-15 15:35:24 +00:00
Joe Thornber 8d26c3729f [functional-tests] add more padding to the .....'s 2017-12-15 11:29:39 +00:00
Joe Thornber 2614078188 [functional-tests] Improve error message in create-device 2017-12-15 11:18:09 +00:00
Joe Thornber ee40e4becf [functional-tests] switch map -> for-each in a couple of places 2017-12-15 11:17:26 +00:00
Joe Thornber 19dfed1da9 [functional-tests] Log exceptions properly 2017-12-15 10:21:59 +00:00
Joe Thornber 3c5408e51b [functional tests] (thin create bs-multiple-of-64k-good/bad) 2017-12-14 15:57:27 +00:00
Joe Thornber 4b90bd8edb [functional-tests] ditch define-thin-scenario
It obfuscates more than it saves
2017-12-14 15:12:09 +00:00
Joe Thornber 2db8ecf9e9 [functional-tests] some thin/delete tests 2017-12-14 14:58:16 +00:00
Joe Thornber 93213135ad [functional-tests] finish porting the thin/creation tests 2017-12-12 16:56:55 +00:00
Joe Thornber d6a5ced23b Merge branch 'master' of github.com:jthornber/thin-provisioning-tools 2017-12-12 15:28:17 +00:00