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
Ming-Hung Tsai
582e424560
[space-map-disk] fix the number of free blocks ( #93 )
2018-04-17 14:00:44 +01:00
Ming-Hung Tsai
591f725232
[space map disk] reduce the lock counts to speed up free block searching ( #84 )
...
Avoid repetitively acquiring/releasing the bitmap while finding a free block
2017-09-04 18:05:19 +01:00
Joe Thornber
467be1a69e
Add some std namespaces to get tests building.
...
I guess a rogue header had previously been using the std namespace.
2017-07-24 15:40:17 +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
8f25e1b234
[space-map-disk] optimise updating a ref count
2017-04-11 11:59:49 +01:00
Joe Thornber
db44b5b928
[space-map-disk] Keep track of the allocated prefix so we can start searching in a better place.
2017-04-11 09:40:08 +01:00
Ming-Hung Tsai
7eac48793c
[space map disk] tidy up: add const qualifier
2016-06-20 00:40:10 +08: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
a21f97e405
[space map disk] Add get_nr_blocks_in_data_sm()
...
which just uses the root
2016-03-21 17:16:41 +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
778c153c1e
[block-cache] Add check_raw() to bcache::validator
2016-02-27 15:21:13 +08:00
Ming-Hung Tsai
45e9916428
Expose validator creation interface
2016-02-27 15:21:05 +08: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
c6844dc7e6
[metadata space map] Restrict space map size
...
Previously it would crash with v. large metadata areas.
2015-06-24 16:32:17 +01:00
Joe Thornber
34df640d8d
[metadata space map] index bitmap root wasn't being counted in count_metadata()
2015-04-08 12:32:00 +01:00
Joe Thornber
ee200ba85b
Merge branch 'master' into space-map-checking
2015-04-07 12:18:23 +01:00
Joe Thornber
f25e0ca6d3
g++-4.2 and older doesn't accept binary constants.
...
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
2015-01-16 10:15:55 +00:00
Joe Thornber
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
Joe Thornber
5c82d50204
remove some debug
2014-07-28 14:32:20 +01:00
Joe Thornber
7e870ea5a6
start removing block_manager<>::block
2014-07-25 14:46:51 +01:00
Joe Thornber
b32908d5c2
work in progress
2014-07-25 10:35:04 +01:00
Joe Thornber
d517684c95
Initial code drop for merging block_cache
2014-07-22 16:41:39 +01:00
Joe Thornber
9f6546f621
put space map checking back in
2014-02-19 16:08:05 +00:00
Joe Thornber
38f8195a99
thin_show_blocks
2014-02-19 15:01:07 +00:00
Joe Thornber
be5fa59f90
Merge branch 'era' of github.com:jthornber/thin-provisioning-tools into era
2014-01-08 10:50:26 +00:00
Joe Thornber
8049d369a9
stuff
2013-12-11 17:28:14 +00:00
Joe Thornber
983a5e84e6
Move endian_utils to base/
2013-11-19 10:23:35 +00:00
Joe Thornber
dd65089b68
sort out some #includes
2013-10-23 11:39:31 +01:00
Joe Thornber
77286e0bc7
Take out some 'typename's to support older versions of gcc (Heinz).
2013-08-15 10:35:07 +01:00
Joe Thornber
0029962f20
Give up with --std=c++11
...
There are too many distros that use old versions of g++ that don't support it adequately.
2013-08-08 10:49:59 +01:00
Joe Thornber
8b1a284ad4
remove old FIXME
2013-07-09 14:40:16 +01:00
Joe Thornber
311034f771
[subtracting_span_iterator] recode using run_set
2013-07-09 11:25:09 +01:00
Joe Thornber
eb8d4c6f0b
Get tools building with g++ 4.8.1
2013-06-25 13:48:02 +01:00
Joe Thornber
a8585f1d68
Use full paths in some includes
2013-06-19 17:18:39 +01:00
Joe Thornber
df016f07a7
[space map disk] Add a bounds check when accessing block data.
...
This means we get a more helpful message in the exception.
2013-06-14 15:36:01 +01:00
Joe Thornber
6706493304
Remove some global 'using namespace's
2013-05-28 13:48:10 +01:00
Joe Thornber
224ef1f429
switch to -std=c++11
2013-05-14 15:37:57 +01:00
Joe Thornber
42a4221499
A little optimisation for the core space map.
2013-05-09 14:09:47 +01:00
Joe Thornber
a828cde96d
[btree] visitor now passed as a reference rather than shared_ptr
2013-05-02 12:31:33 +01:00
Joe Thornber
e1c5d485eb
Tidy up a typedef
2013-05-01 16:29:44 +01:00
Joe Thornber
5d0b23beea
Some btree visitor tidying.
...
Introduce node_location to replace the long list of parameters. Also
add a depth field to keep track of the depth from root.
2013-05-01 16:16:23 +01:00
Joe Thornber
5367631c8c
[various data structures] Reuse validators rather than always creating a new one.
2013-04-26 14:15:20 +01:00
Joe Thornber
d8a208cbc8
A stack of space map tweaks.
...
new_block() is now a concrete method implemented using the virtual
find_free() and inc() methods.
recursive space map is better at giving correct reference counts.
2013-04-23 10:57:47 +01:00
Joe Thornber
4cb19a06ba
Pull subtracting_span_iterator out into separate file + test.
2013-04-22 13:41:34 +01:00
Joe Thornber
0a70c17268
Convert bitset_t to gmock
2013-03-22 14:36:31 +00:00
Joe Thornber
7d18b08b91
rename NoOpRefCounter -> no_op_ref_counter
2013-02-01 14:49:26 +00:00
Joe Thornber
aacca8d963
Introduce persistent-data/data-structures/
2013-01-11 19:26:51 +00:00
Joe Thornber
326fd3408b
move space maps to their own sub directory
2013-01-10 21:36:38 +00:00