Commit graph

40 commits

Author SHA1 Message Date
Andrea Mazzoleni
cbf2040b89 Add mutex protection at the filesystem structure
In sync we need to modify the filesystem, like to call
fs_deallocate(). We need then proper protection.
This also removes the need of multiple fs_last cached value.
2016-01-09 10:18:14 +01:00
Andrea Mazzoleni
5249f9cb04 Fix various typos in comments 2016-01-02 16:52:20 +01:00
Andrea Mazzoleni
801d01c55b Store UUIDs in the disk element 2015-12-28 12:09:13 +01:00
Andrea Mazzoleni
f71ddbb3fd Add backtrace support for internal errors 2015-12-04 22:02:31 +01:00
Andrea Mazzoleni
df22c18515 Remove abort() call left in for testing 2015-11-20 00:01:18 +01:00
Andrea Mazzoleni
9bd0f18439 Replace assertions with more informative messages 2015-11-18 22:10:50 +01:00
Andrea Mazzoleni
6b55d2a292 Add extra assertions and consistency checks 2015-11-16 22:54:00 +01:00
Andrea Mazzoleni
8ff39bb9bf Fix thread operations using thread-safe functions
We have a common disk cache, that we cannot share
during multithread operations.

Intead of using a mutex to access the cache, we use a
local thread cache.
2015-10-30 19:06:24 +01:00
Andrea Mazzoleni
3e83b15bbb Extend --force-device to ignore more erroneous conditions
We want to allow fix also if some disk is unaccessible,
and content files not present.
2015-10-16 23:17:38 +02:00
Andrea Mazzoleni
fb759fec84 Rename some shadow variables
This removes some warnings in gcc 4.6 version.
2015-10-08 22:33:41 +02:00
Andrea Mazzoleni
a8de121b98 Print more info in case of internal incorsistency in the file mapping 2015-10-07 22:19:10 +02:00
Andrea Mazzoleni
452a595067 Adjust verbs in comments 2015-10-07 22:07:20 +02:00
Andrea Mazzoleni
25fe6a252c Extend filesystem support for deallocation in the middle
This could happen in some special cases
2015-10-05 22:48:16 +02:00
Andrea Mazzoleni
b17e618d49 Add an extensive parity filesystem check
With the new mapping it's now possible to check everything
in a very fast way.
2015-10-05 21:40:44 +02:00
Andrea Mazzoleni
74ca71600d Optimize the access at the mapping trees
We access them sequentially, and keeping the last accessed block
is enough to improve the speed.
2015-10-04 23:47:06 +02:00
Andrea Mazzoleni
9bc5f9e5ce Change the internal mapping to a tree of chunk
This is intended to save memory as now we can use a fixed
block of 17 bytes to store the block information, compared
to the previous 28/36 bytes.
2015-10-04 23:17:13 +02:00
Andrea Mazzoleni
fa775d24a8 More interface changes to prepare to the use of tree mapping 2015-10-04 22:03:58 +02:00
Andrea Mazzoleni
f719ee4f57 Switch from deleted blocks to deleted files
This will allow an easier management of the parity allocation.
2015-10-01 23:24:44 +02:00
Andrea Mazzoleni
0407c945db Change the interface for parity allocation
This will allow a more compact representation
of the parity allocation
2015-10-01 23:24:06 +02:00
Andrea Mazzoleni
cca2cbb23f Scrub first the just synced blocks 2015-08-27 18:58:25 +02:00
Andrea Mazzoleni
d493277ea1 Reject invalid filter specifications 2015-08-03 19:31:07 +02:00
Andrea Mazzoleni
aef11798b0 Clarify why filters could be rejected with a proper message 2015-05-30 13:18:16 +02:00
Andrea Mazzoleni
de0c437bd2 Put a clear separation between log and msg functions 2015-04-20 22:07:42 +02:00
Andrea Mazzoleni
214070dc4d Add support for a new "smartctl" config option
This option allows to configure custom smartctl
commands for devices that cannot be autodetected.
2015-04-08 22:56:44 +02:00
Andrea Mazzoleni
e56de653da Introduce a new messaging system 2015-02-22 14:31:03 +01:00
Andrea Mazzoleni
b5ce575981 Change the log and output handling
Now the log file contains all the errors messages,
and all the tag lines.
2015-02-02 23:39:46 +01:00
Andrea Mazzoleni
5665336c16 Change the rule output format to match the input one 2015-01-27 23:32:13 +01:00
Andrea Mazzoleni
83e1629868 When excluding files print also the rule excluding them 2015-01-27 23:10:38 +01:00
Andrea Mazzoleni
ffe7f6fa57 Adds new files support.c/h for low level support functions. 2015-01-02 18:52:04 +01:00
Andrea Mazzoleni
7e9a5e6a6d Stores the free space in the content file.
This avoids the need to access data and parity disks in
the status command.
Also removed some data disk access, in list, dup and similar
commands that don't need to scan the disks.
2014-11-09 19:14:29 +01:00
Andrea Mazzoleni
8ee1131bed Refactors some mapping/find_disk uses. 2014-11-09 10:51:48 +01:00
Andrea Mazzoleni
ca5e635aa1 In Windows ensures to use synced information for new files.
Keeps track of the sync state of info with a new st_sync field
in the stat struct.
2014-10-04 10:27:23 +02:00
Andrea Mazzoleni
876bddcf4c Beautifies the code. 2014-09-27 00:32:39 +02:00
Andrea Mazzoleni
35fb2085dc Removes unused code. 2014-06-28 12:12:51 +02:00
Andrea Mazzoleni
03fc05e93c Removes the new .backup feature.
I'm not yet convinced that it's a good idea, because it may
end in unexpected errors if the old content file is used
as it's it.
2014-06-25 22:51:26 +02:00
Andrea Mazzoleni
5dfc67ec18 Keeps stats about usage time of disk and cpu. 2014-06-25 22:32:36 +02:00
Andrea Mazzoleni
da08ca4497 Makes a backup copy of the content file.
Before overwriting the existing content file, rename it
adding the .backup extension, but only if such content file
was read and validated.
2014-06-13 18:23:24 +02:00
Andrea Mazzoleni
de86307a27 Uses a smarter copy detection to avoid false positive.
Now a if the file has a zero nanosecond timestamp, it must
match the full pathname.
Also add the new -N option and an new undocumented test-nano
command to set randomly the nanosecond timestamp of files
that have it at zero.
2014-05-15 23:45:51 +02:00
Andrea Mazzoleni
16ddf36121 Uses a more specific message if UUID are not supported. 2014-04-03 23:02:43 +02:00
Andrea Mazzoleni
44ef039a13 Different source organization. 2014-03-23 17:50:27 +01:00
Renamed from src/elem.c (Browse further)