Sebastian Messmer
|
bbdfc5c234
|
Simplify FsppNodeTest
|
2017-01-22 01:11:26 +00:00 |
|
Sebastian Messmer
|
42765c6be6
|
Merge from develop
|
2017-01-21 20:24:09 +00:00 |
|
Sebastian Messmer
|
e37d84a3d6
|
fspp::Dir, fspp::File and fspp::Symlink don't inherit from fspp::Node anymore. This allows file systems to return a generic fspp::Node instead of a concrete subclass when the operation doesn't need to know what type of node it is.
|
2017-01-21 19:16:35 +00:00 |
|
Sebastian Messmer
|
8c9cea6413
|
Fix nullversion recognition in gitversion
|
2016-12-31 16:22:57 +01:00 |
|
Sebastian Messmer
|
681f415272
|
Use curl_global_init/curl_global_cleanup for cleaner shutdown of executable
|
2016-10-26 13:50:20 -07:00 |
|
Sebastian Messmer
|
abae027538
|
Fix compiler error on FreeBSD
|
2016-10-20 10:35:29 +02:00 |
|
Sebastian Messmer
|
fb123f8fd0
|
Removed fixed TODOs
|
2016-10-14 12:34:42 +02:00 |
|
Sebastian Messmer
|
9d05b8571c
|
Merge from develop
|
2016-10-13 18:30:27 +02:00 |
|
Sebastian Messmer
|
bd74a5b762
|
More detailed error reporting if key derivation fails
|
2016-10-02 11:01:14 +02:00 |
|
Sebastian Messmer
|
ce218f264a
|
Silence a static analysis warning
|
2016-09-25 20:36:35 +02:00 |
|
Sebastian Messmer
|
58d6a454d7
|
Merge branch 'develop' into next
|
2016-09-25 11:41:33 +02:00 |
|
Sebastian Messmer
|
6464bfb4b7
|
Disable update checks in noninteractive mode
|
2016-09-25 11:40:01 +02:00 |
|
Sebastian Messmer
|
e009040264
|
Merge from develop
|
2016-09-25 02:53:35 +02:00 |
|
Sebastian Messmer
|
443298844e
|
Fix test cases
|
2016-09-25 02:50:28 +02:00 |
|
Sebastian Messmer
|
b027f8c007
|
Merge from develop
|
2016-09-24 20:43:54 +02:00 |
|
Sebastian Messmer
|
1e9fdc9aa7
|
Refactor noninteractive mode. All yes/no questions are forced to define a default that will be used in noninteractive mode.
|
2016-09-24 20:28:56 +02:00 |
|
Sebastian Messmer
|
1cf52b307d
|
Fix locking in LockPool
|
2016-09-24 17:02:23 +02:00 |
|
Sebastian Messmer
|
11a85ed29f
|
Allow building with -DCRYFS_UPDATE_CHECKS=off, which will create an executable with disabled update checks (the alternative to disable them in the environment also still works).
|
2016-09-24 13:16:26 +02:00 |
|
Sebastian Messmer
|
1c34c88709
|
Remove warning that CryFS is experimental
|
2016-09-24 12:33:22 +02:00 |
|
Sebastian Messmer
|
789bfc7527
|
Fix warning from static analysis tool about std::moving a large CryConfig object
|
2016-09-24 11:42:57 +02:00 |
|
Sebastian Messmer
|
46a2251e9d
|
Fix potential (although improbable) deadlock
|
2016-09-24 11:01:22 +02:00 |
|
Sebastian Messmer
|
b4a609459b
|
When an exception escalates to main, exit with an error code
|
2016-09-24 09:52:19 +02:00 |
|
Sebastian Messmer
|
a1c3079a68
|
Catch exceptions from main
|
2016-09-24 09:51:29 +02:00 |
|
Sebastian Messmer
|
e30656797b
|
Add compatibility with Crypto++ 5.6.4
|
2016-09-24 09:39:37 +02:00 |
|
Sebastian Messmer
|
46183976ee
|
Fix missing virtual destructor and potential integer overflow
|
2016-09-21 20:07:20 +02:00 |
|
Sebastian Meßmer
|
e414f0a20f
|
Switch to LGPL
|
2016-09-13 19:23:08 +02:00 |
|
Sebastian Messmer
|
32f06f288a
|
Fix tree traversal and add test case for it
|
2016-09-07 22:25:18 +02:00 |
|
Sebastian Messmer
|
904e3dd7a1
|
Merge
|
2016-09-07 22:07:56 +02:00 |
|
Sebastian Messmer
|
ea349cf79b
|
Fix traversal bug and add test case for it
|
2016-09-07 19:02:41 +02:00 |
|
Sebastian Messmer
|
0cbb13ffbe
|
Compatibility with older libcurl versions
|
2016-08-27 13:23:25 +02:00 |
|
Sebastian Messmer
|
b315154f08
|
Merge from develop
|
2016-07-23 10:17:42 +02:00 |
|
Sebastian Messmer
|
6360d452fe
|
Make compatible with libcurl >= 7.50
|
2016-07-23 09:04:50 +02:00 |
|
Sebastian Messmer
|
d2cecb4ecc
|
Disable large_read fuse option, since it's not used in new fuse versions anyhow and makes problems when fuse is run in user mode linux.
|
2016-07-22 20:44:06 +02:00 |
|
Sebastian Messmer
|
a4ce49aef4
|
Fix unique_ref test cases
|
2016-07-22 14:07:06 +02:00 |
|
Sebastian Messmer
|
64d26c2f6e
|
Fix compiler error on older gcc
|
2016-07-22 12:58:59 +02:00 |
|
Sebastian Messmer
|
f069733650
|
Fix warning on older gcc versions
|
2016-07-22 02:57:03 +02:00 |
|
Sebastian Messmer
|
e38c0f1e8b
|
Fix isRightBorderNode when growing trees
|
2016-07-17 10:32:59 +02:00 |
|
Sebastian Messmer
|
bbdd8a548b
|
Special case treatment for traversals until exactly the last leaf has to load the last leaf to grow it. Before this commit, we just always loaded the last traversed leaf and checked its size. Now we only do so if it's the right border leaf. This saves us loading some leaves.
|
2016-07-17 10:16:09 +02:00 |
|
Sebastian Messmer
|
b339261924
|
Merge branch 'next' into lessio
|
2016-07-16 17:14:07 +02:00 |
|
Sebastian Messmer
|
f6141f515b
|
TODOs
|
2016-07-16 17:08:53 +02:00 |
|
Sebastian Messmer
|
dc40d61595
|
Merge branch 'next' into lessio
|
2016-07-16 16:47:36 +02:00 |
|
Sebastian Messmer
|
e3690e2f6b
|
Add comment
|
2016-07-16 16:47:27 +02:00 |
|
Sebastian Messmer
|
9c42703c70
|
Merge branch 'next' into lessio
|
2016-07-16 16:10:03 +02:00 |
|
Sebastian Messmer
|
143c3b3b4f
|
Use large reads and large write
|
2016-07-16 16:09:47 +02:00 |
|
Sebastian Messmer
|
eab7cb1df4
|
Implement BlockStore::overwrite(). This is the last step in ensuring that the write() call doen't have to load leaves if they're only overwritten anyhow.
|
2016-07-16 11:42:06 +02:00 |
|
Sebastian Messmer
|
eb792daefc
|
More preparations for not loading blocks in write() calls
|
2016-07-15 21:06:41 +02:00 |
|
Sebastian Messmer
|
d80b95514e
|
Traversal doesn't load leaves, but returns the key. This way, the write() call can (after a future commit) write to full leaves without loading them beforehand.
|
2016-07-15 20:12:24 +02:00 |
|
Sebastian Messmer
|
582917c1f5
|
Improve code decreasing tree depth
|
2016-07-15 16:23:00 +02:00 |
|
Sebastian Messmer
|
b1b90b8c3d
|
Further reduce number of nodes loaded when deleting a tree and write test cases for it
|
2016-07-15 15:42:34 +02:00 |
|
Sebastian Messmer
|
c428d5642a
|
Minimize number of Block::write() calls when creating new nodes in a traversal. Also add test cases for it.
|
2016-07-15 12:48:20 +02:00 |
|
Sebastian Messmer
|
d626349802
|
Finish MockBlockStore to also collect other performance metrics, and implement the standard block store tests for it.
|
2016-07-15 10:23:09 +02:00 |
|
Sebastian Messmer
|
f42e08a5f6
|
Fix DataTree::key() when called while traversing
|
2016-07-14 17:56:47 +02:00 |
|
Sebastian Messmer
|
6ff0839e90
|
Add locking to blob
|
2016-07-14 16:36:30 +02:00 |
|
Sebastian Messmer
|
457ca52eb3
|
Add assertions to unique_ref
|
2016-07-14 16:29:02 +02:00 |
|
Sebastian Messmer
|
7ea08fc2b0
|
Add test cases for removing nodes
|
2016-07-14 16:12:51 +02:00 |
|
Sebastian Messmer
|
91bf6c3647
|
Keep resource destructor in ParallelAccessStore under mutex
|
2016-07-14 15:10:52 +02:00 |
|
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
|
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
|
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
|
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
|
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 Messmer
|
b7b5dfba2a
|
Fix generation of new file systems
|
2016-06-27 22:31:06 -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
|
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
|
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 |
|
Sebastian Messmer
|
f066b45954
|
VersionCountingBlockStore::forEachBlock() has an integrity check checking that all expected blocks are still existing.
|
2016-06-26 22:15:52 -07:00 |
|
Sebastian Messmer
|
491b277cee
|
In case of an integrity violation, tell the user how they can reset integrity data.
|
2016-06-26 22:15:52 -07:00 |
|
Sebastian Messmer
|
839a511c4d
|
When an integrity violation is detected, any further access to the file system is blocked. This ensures that the user notices the integrity violation.
|
2016-06-26 22:15:52 -07:00 |
|
Sebastian Messmer
|
c84a230afd
|
VersionCountingBlockStore is initialized with a flag, saying whether missing blocks are integrity errors. This flag is meant to be activated in a single-client scenario to have this additional integrity check.
|
2016-06-26 22:15:52 -07:00 |
|
Sebastian Messmer
|
e02021ecdc
|
Throw an IntegrityViolationError exception instead of just logging integrity violations. This makes sure the user notices.
|
2016-06-26 22:15:52 -07:00 |
|
Sebastian Messmer
|
d306f4872e
|
Fix merge error
|
2016-06-26 22:15:52 -07:00 |
|
Sebastian Messmer
|
fd5dd2c6e1
|
New way of handling block deletions: Set last-update-client-id to zero instead of increasing version number. This has the same effect (i.e. invalidates all known block versions) and it additionally allows for checking in a local list whether a block is deleted or not.
|
2016-06-26 22:15:52 -07:00 |
|
Sebastian Messmer
|
ee1f0f4d3a
|
Warn in migration that it might take a while
|
2016-06-26 22:15:52 -07:00 |
|
Sebastian Messmer
|
86c2144a37
|
Implement migration from file systems without version numbers
|
2016-06-26 22:15:52 -07:00 |
|
Sebastian Messmer
|
f9a10eea4d
|
Fix VersionCountingBlock::resize()
|
2016-06-26 22:15:52 -07:00 |
|