Commit Graph

1637 Commits

Author SHA1 Message Date
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
Joe Thornber
bca125d97a [functional-tests] a bunch of thin tests 2017-12-12 15:27:20 +00:00
Joe Thornber
4bb99bf105 [functional-tests] Add math-utils library 2017-12-12 15:23:51 +00:00
Joe Thornber
ddea2c0de7 [functional-tests] thin-calc-ref-counts
This is the start of a tool that will analyse the block manager journal
and spot any cases where we're not crash proof.
2017-11-24 11:21:02 +00:00
Joe Thornber
4726854784 [functional-tests] add FIXME 2017-11-24 11:11:32 +00:00
Joe Thornber
29e92772a9 [functional-tests/btree] btree-walk-and-count + stop using a spine. 2017-11-24 11:10:41 +00:00
Joe Thornber
80d8a5b684 [ft-lib/bcache] Make warn and raise variadic 2017-11-24 11:06:45 +00:00
Joe Thornber
09fa32a423 [ft-lib/bcache] alloc_block wasn't checking for an empty free list 2017-11-24 11:05:51 +00:00
Joe Thornber
0569e06e80 [functional-tests] whitespace 2017-11-24 11:04:57 +00:00
csonto
39809c17b2 [*_restore] Fix leaking file descriptor (#89) 2017-11-14 15:09:11 +00:00