Commit Graph

2076 Commits

Author SHA1 Message Date
Sebastian Messmer
3f04a7411c If tree depth increases, and we already traversed the old tree, don't go into it again to grow its last leaf. 2016-07-14 14:23:15 +02:00
Sebastian Messmer
cbe122cb5f Add assertions 2016-07-14 13:23:36 +02:00
Sebastian Messmer
0bb6b320d4 Add asserts 2016-07-14 12:58:42 +02:00
Sebastian Messmer
0dbfdf3e2b When shrinking a tree, LeafTraverser takes care of decreasing tree depth, not DataTree anymore. This way, LeafTraverser is now responsible for increasing and decreasing depth as necessary. 2016-07-14 12:55:54 +02:00
Sebastian Messmer
35a4e42ba5 Small fixes in traversal algorithm 2016-07-14 12:38:25 +02:00
Sebastian Messmer
fce81f47ff Simplify code a bit and add assertions 2016-07-14 12:03:15 +02:00
Sebastian Messmer
41146282ca Add test cases for tree traversal 2016-07-14 11:41:49 +02:00
Sebastian Messmer
9e9369b9ed Performance optimization: When removing or shrinking a tree, we don't load/read leaves anymore. Loading inner nodes is enough to get all block IDs and then we can delete the leaves from their IDs without loading them. 2016-07-13 11:27:31 +02:00
Sebastian Messmer
7a68757599 Remove unneeded subtrees when shrinking tree 2016-07-13 07:08:53 +02:00
Sebastian Messmer
cf38eb0eb3 Use tree traversal to remove data tree. 2016-07-13 00:29:36 +02:00
Sebastian Messmer
e7268744c6 Fix compiler warning 2016-07-13 00:23:29 +02:00
Sebastian Messmer
508766d2f2 Fix traversal and add test cases 2016-07-13 00:22:35 +02:00
Sebastian Messmer
845b0b5239 Use LeafTraversor for resizing blobs 2016-07-12 20:36:12 +02:00
Sebastian Messmer
a19d79361c If a tree is grown by a traversal, the tree is kept in a balanced state as long as possible during the traversal 2016-07-12 09:57:56 +02:00
Sebastian Messmer
1bf20277e4 Removed unnecessary code 2016-07-12 01:10:27 +02:00
Sebastian Messmer
58f2212043 Don't query size on traversal 2016-07-12 01:09:30 +02:00
Sebastian Messmer
582c9c1a4c Fix traversal 2016-07-12 01:04:33 +02:00
Sebastian Messmer
98b85ea8b6 Started rewriting traversal 2016-07-10 22:57:39 +02:00
Sebastian Messmer
2bc3b641aa Allow Data::FillWithZeroes on rvalue 2016-07-10 22:43:07 +02:00
Sebastian Messmer
30a1a3617e Fix compiler warning in test case 2016-07-10 22:15:48 +02:00
Sebastian Messmer
dde89da556 Improve traverseLeaves 2016-07-10 08:38:02 +02:00
Sebastian Messmer
0d860fa4f0 Speed up block loading/storing by issuing only one read/write syscall to the base file system 2016-07-06 15:35:51 -07:00
Sebastian Messmer
7348f7c64d Add checks to Data::LoadFromFile() and Data::StoreToFile() 2016-07-06 15:28:14 -07:00
Sebastian Messmer
e85019e95b Cache value of DataTree.numLeaves(). This should make read()/write() faster. 2016-07-05 23:56:44 -07:00
Sebastian Messmer
2f8e8d8157 Add test case for DataTree::numLeaves after resize 2016-07-05 23:53:13 -07:00
Sebastian Messmer
a242076ecc Performance improvement: Allow more parallelity when getting read()/write() syscalls to the same blob 2016-07-05 23:02:59 -07:00
Sebastian Messmer
ff0ba06846 Add mutex to fix race condition 2016-06-29 16:42:43 -07:00
Sebastian Meßmer
5442662dd1 Update link to cryfs-gui 2016-06-29 14:39:53 -07:00
Sebastian Messmer
3a447a7110 Add a test case to VersionCompareTest 2016-06-28 15:24:18 -07:00
Sebastian Messmer
f4eb5534ad Merge from develop 2016-06-28 14:52:18 -07:00
Sebastian Messmer
01daee784f Mark version 0.9.5 as released 2016-06-28 02:32:09 -07:00
Sebastian Messmer
9e1d466eee Merge branch 'develop' into next 2016-06-28 01:38:12 -07:00
Sebastian Messmer
967b04929d Fix compiling test cases on older gcc versions 2016-06-28 01:37:08 -07:00
Sebastian Messmer
def80c06ae Merge branch 'develop' into next 2016-06-27 23:04:26 -07:00
Sebastian Messmer
f706e46868 Fix compiling test cases on older gcc versions 2016-06-27 22:57:31 -07:00
Sebastian Messmer
0f9aba1fc4 Fix compilation of test cases for old gcc 2016-06-27 22:39:33 -07:00
Sebastian Messmer
b7b5dfba2a Fix generation of new file systems 2016-06-27 22:31:06 -07:00
Sebastian Messmer
d6f505038a ChangeLog 2016-06-27 20:05:46 -07:00
Sebastian Messmer
3425760daf Implement migration for old filesystems that don't have parent pointers. 2016-06-27 20:03:44 -07:00
Sebastian Messmer
bfb397f44e Tell user to not interrupt migration process 2016-06-27 20:01:02 -07:00
Sebastian Messmer
397de9372f Each blob stores a parent pointer (i.e. the ID of the directory that contains this blob). This stores the directory structure in a conflict-proof way and can be used to resolve such conflicts. 2016-06-27 18:22:13 -07:00
Sebastian Messmer
edc542e3c5 ChangeLog 2016-06-27 14:47:31 -07:00
Sebastian Messmer
a7f13ad7c1 When creating a file system, the user can choose whether to choose missing blocks as integrity violations. 2016-06-26 23:24:32 -07:00
Sebastian Messmer
2451a8c46f Add --missing-block-is-integrity-violation option. The option doesn't have an effect yet though. 2016-06-26 22:16:44 -07:00
Sebastian Messmer
7bf84b1948 Add some test cases for the consistency of the generated myClientId. 2016-06-26 22:15:52 -07:00
Sebastian Messmer
be8dffb24d MyClientId is generated outside of CryDevice to give the CryConfigCreator access to it. 2016-06-26 22:15:52 -07:00
Sebastian Messmer
7b56706c1a Be explicit about types stored in config file 2016-06-26 22:15:52 -07:00
Sebastian Messmer
b838046246 Add a 'exclusive client' option to the config file 2016-06-26 22:15:52 -07:00
Sebastian Messmer
514dbcb6c7 ClientId is not loaded/generated inside of KnownBlockVersions, but in CryDevice. This way, CryDevice also has access to the ClientID. This is later needed to recognize whether we're in a single-client or in a multi-client setting. 2016-06-26 22:15:52 -07:00
Sebastian Messmer
1c654305a8 In integrity violations, use individual messages saying which check exactly failed. 2016-06-26 22:15:52 -07:00