20 Commits

Author SHA1 Message Date
Sebastian Messmer
5fb4098c8b Implement relatime behavior for performance 2017-08-23 20:32:36 +01:00
Sebastian Messmer
317088e449 Rename unique_ref::isValid to is_valid to comply with naming scheme of other functions 2017-04-10 14:16:30 -07:00
Sebastian Messmer
d84e65ad76 Merge from develop 2017-02-18 13:22:43 +00:00
Sebastian Messmer
19bfe97d52 du reports correct space usage 2017-02-18 13:21:54 +00:00
Sebastian Messmer
457ca52eb3 Add assertions to unique_ref 2016-07-14 16:29:02 +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
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
6448110975 OpenFile updates timestamps correctly, i.e. on read(), write() and truncate(). Also added test cases for it. 2016-06-07 21:25:02 -07:00
Sebastian Messmer
a03ab91aba Fix rename when overwriting an existing file in the same directory 2016-04-28 13:27:54 -07:00
Sebastian Messmer
811c163bfa Fix rename() when overwriting an existing file: (a) Keep the invariant that the list of directory entries is sorted and (b) delete the blob of the overwritten file 2016-04-25 17:42:17 -07:00
Sebastian Messmer
6e7004d485 Rename operation allows overwriting existing files. 2016-03-24 02:47:50 +00:00
Sebastian Messmer
2ac47f480b - Fix rename bug: When trying to rename a file to a name that already exists, it was deleted instead. This is now fixed.
- Additional test cases for rename
2016-03-23 18:03:30 +00:00
Sebastian Messmer
1c0199e147 When the user specifies a block size for the file system, this is taken as the physical block size, not virtual block size. 2016-03-16 19:30:26 +00:00
Sebastian Messmer
0cdfb8ba2e Fix fstat (a bug in the fstat implementation caused problems with some text editors (e.g. nano) falsely thinking a file changed since they opened it). 2016-03-16 17:03:53 +00:00
Sebastian Messmer
52d85f4de3 Refactor DirEntries 2016-03-16 15:29:26 +00:00
Sebastian Messmer
d7f34c0dfb Make blocksize configurable 2016-03-08 23:57:34 +01:00
Sebastian Messmer
df041ac845 Fix a bug where deleting a directory could leave over some blocks.
Details: Before, we allowed removing non-empty directories. Seems 'rm -rf' is trying to do that. Now, we return the correct error code ENOTEMPTY in this case, which causes that 'rm -rf' deletes the entries first.
2016-02-17 12:52:01 +01:00
Sebastian Messmer
68acc27e88 Report file system statistics (like free space) to operating system 2016-02-15 14:20:21 +01:00
Sebastian Messmer
6fb46c7e73 Use inline for short functions 2016-02-15 13:22:21 +01:00
Sebastian Messmer
c6e8052d93 Merge all git repositories into one 2016-02-11 16:40:48 +01:00