Andrea Mazzoleni
3ea6714236
Cleanup resource on thread errors
...
We are going to exit() anyway, but static analyzers
don't known that.
2015-10-31 16:46:15 +01:00
Andrea Mazzoleni
06cbc7d482
Some missing coverage exclusions
2015-10-31 16:29:08 +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
fcf7c44197
Use different thread when writing content file
...
This should reduce the possibility that the same
memory error is going to affect all the written
content files in the same way.
2015-10-29 23:37:58 +01:00
Andrea Mazzoleni
80476c480b
Delayed CRC computation of the buffer used in writing
...
This should help to detect more memory errors when writing
the content files.
2015-10-29 22:32:07 +01:00
Andrea Mazzoleni
204656b129
Verify the CRC of content files after writing them
2015-10-28 22:04:04 +01:00
Andrea Mazzoleni
0a89c6d196
Add testing for the new sdeplete() function
2015-10-28 19:45:12 +01:00
Andrea Mazzoleni
7e1d9138b5
Add the deplete operation at the data stream
...
It's used to read the content file up to the end to verify its CRC.
2015-10-28 19:36:24 +01:00
Andrea Mazzoleni
104c47d106
Add a proper signal handling
...
The most common signals are now intercepted with SA_RESTART
to allow a clean interruption.
2015-10-26 19:32:41 +01:00
Andrea Mazzoleni
4c9da1fa43
Use a more severe error reporting for --force-device
...
We want to be sure that such messages are not ignored.
2015-10-18 23:04:56 +02:00
Andrea Mazzoleni
2b69cfa073
Extend the disk filtering to parity disk
...
You can now fix a specific parity disk,
without touching the others.
2015-10-17 17:36:40 +02: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
841e6306e3
Avoid the duplicated 'Missing file' message
...
When fixing with filters, the filtered out files
were reported multiple times as missing.
We now mark if a file is missing, and we avoid
to try to open it multiple times.
2015-10-15 19:39:48 +02:00
Andrea Mazzoleni
c6526a1a97
Update SMART stats with BackBlaze data 2015 Q3
2015-10-14 21:52:35 +02:00
Andrea Mazzoleni
8de54cb863
Better testing with fake devices
2015-10-09 18:35:24 +02:00
Andrea Mazzoleni
5969bc9139
Remove some conversion warnings
2015-10-08 22:33:50 +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
0ba7e649d1
Better optimized CRC call when writing the content file
...
This saves about 15% of CPU time in writing.
2015-10-08 22:09:12 +02:00
Andrea Mazzoleni
aa34b76203
Add a new test-read command for speed measurement
2015-10-08 19:00:55 +02:00
Andrea Mazzoleni
176a172411
Extend the Tommy tree regresison test
2015-10-08 18:42:02 +02:00
Andrea Mazzoleni
0c7ea790c3
Check the block state before getting the parity mapping
...
This case is not problematic, but we enforce the check order
for consistency.
2015-10-08 18:41:01 +02:00
Andrea Mazzoleni
2df022c38b
Extend the CRC regression test
2015-10-08 18:40:36 +02:00
Andrea Mazzoleni
610c59e1d8
Fix an inconsistency check about not mapped copied files
2015-10-07 23:18:06 +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
cb17124cec
Remove unused text stream functions
2015-10-04 23:17:17 +02:00
Andrea Mazzoleni
0c3bfb9b48
Remove coverage need for malloc failure functions
2015-10-04 23:17:17 +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
23983d6e9c
Drop text file support
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
49bcad5448
Extend the -h option to check also copied/moved files
2015-09-29 22:31:13 +02:00
Andrea Mazzoleni
254db2cdbf
Fix a typo in a comment
2015-09-27 15:33:54 +02:00
Andrea Mazzoleni
2555248645
Extend the -p option with bad/sync/full arguments
2015-09-13 15:48:05 +02:00
Andrea Mazzoleni
a7c4f082b3
Use size_t where appropriate
2015-09-13 15:36:36 +02:00
Andrea Mazzoleni
8bc16009bd
Fix build issue due wrong declaration
2015-09-13 11:41:49 +02:00
Andrea Mazzoleni
3bf691ff7d
On data error, prints the number of different bits
2015-09-12 15:19:52 +02:00
Andrea Mazzoleni
167d1edfec
Add some missing log_tag() when opening files
2015-09-02 19:44:48 +02:00
Andrea Mazzoleni
0c9f5f8326
Use a different approach when dealing with badblock filtering
...
This allows to postprocess files setting the right time on them.
2015-09-02 19:37:24 +02:00
Andrea Mazzoleni
fb3d0fbe70
Add some missing log_tag() when closing files
2015-09-02 19:29:35 +02:00
Andrea Mazzoleni
527b798094
Add an additional crc check in mkstream
2015-08-31 22:45:10 +02:00
Andrea Mazzoleni
0ba25d5304
Fix an invalid assumption when using the -e option
...
With -e we cannot postprocess files as we don't have any guarantee
to fully process them, as the select blocks cover likely only
a subset of the file.
2015-08-31 22:01:34 +02:00
Andrea Mazzoleni
cca2cbb23f
Scrub first the just synced blocks
2015-08-27 18:58:25 +02:00
Andrea Mazzoleni
9a5f30cd32
Add a new justsynced info bit to position
...
The value 0 means that the block is scrubbed, and it allows
an easy conversion of past content files.
Note that past versions ignore this info when using binary
content files, then we don't increase the version of the format.
2015-08-27 18:02:12 +02:00
Andrea Mazzoleni
77117b1cd5
Add some more warning checks, and fix the ones reported
2015-08-05 09:42:11 +02:00
Andrea Mazzoleni
d493277ea1
Reject invalid filter specifications
2015-08-03 19:31:07 +02:00