Commit graph

2256 commits

Author SHA1 Message Date
Andrea Mazzoleni
6bebf4dd09 Allow to configure path of external tools 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
5c1cf8560a Secure external tools execution 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
ab72f1cfc8 Add Windows VirtualShadowCopy support for snapshots 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
38f78154f9 Add Windows support for symlink of directories 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
c5b3fdc615 In Windows readlink now convert \ to / to match symlink behaviour 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
8bb22f2f7c Always use PATH_MAX instead of MAX_PATH (limited to 260) 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
d5fb4279e3 Revise manpage pattern section 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
60316a5eda Sanitize shell execution 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
033ce93d5b Add ZFS support 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
ec9ddb474a Rework snapshot interface 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
16b08201a4 Add Bcachefs support 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
4a37e3fece Change the BLOCK_HASH_SIZE type to avoid potential overflow 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
d9c5e0c9b2 Target Windows 7 instead of Windows Vista 2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
e82755197f Modernize configure.ac 2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
c724b47189 More coverage support 2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
8a727975ab Update manpage 2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
fb051e02c7 Update TODO 2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
76ce1cbb16 Add regression check for Btrfs
It requires root privileges as it has to create Btrfs filesystems.
2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
2e71602267 Remove the requirement to snapshot content files
The new content file format now includes metadata for previous versions
of files. This allows the fix command to access historical file data from
snapshots as needed, ensuring recovery even if the live filesystem has
changed or the file was deleted during a sync.
2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
275063d23c Track deallocated files in the content file for parity recovery
Add a new 'dealloc' list per disk to record files that were removed
or modified during a scan. This list is saved in the content file
(new format version SNAPCNT4) so that past parity contributions of
those files can be imported from previous snapshots.
2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
54602422dd Change commenting style 2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
d735eb7736 Change commenting style 2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
03a8c76106 Avoid duplicate steps in the build servers 2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
1227a8c45e Sync no longer requires clearing the past hash
It no longer assumes past hashes are valid if even a single unsynced
block exists, which indicates a previous sync was interrupted.

While this makes syncing slower after an interruption, it preserves the
past hash in the content file, enabling a more reliable fix if a
disk fails following an incomplete sync.

This ensures the --import option remains functional even after an
interrupted sync.
2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
03a8927571 Add detection of AVX2GFNI 2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
25e8436534 Integrate new AVX512 functions in the speed test 2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
bba98c3e63 Add more AVX512 functions for parity 2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
2fc38017a8 Add Btrfs snapshot support for atomic sync and recovery consistency 2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
fcf85b4b7c New Btrfs support using IOCTLs to get UUID and low level devices 2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
c88f7697b3 Get the UUID from the imported file or directory 2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
d0fb6d2ac3 Preliminary support for ADVX512 2026-08-18 23:33:52 +02:00
Christoph Hellwig
cf515b82b2 Make all RAID forwarders static and local using a new registration interface
Co-authored-by: Andrea Mazzoleni <amadvance@gmail.com>
2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
4016f0974a Drop the test-run option from the official binary 2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
6e2e11d9b1 Log using log_error all errors that are not resulting in an early termination 2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
3f70a21efe Reduce permission to avoid to spin up disks in Windows 2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
a73e970b50 Fix undefined _linux macro typo to __linux__
Some checks failed
Build / build-mac (push) Has been cancelled
Build / build-linux (push) Has been cancelled
Build / build-win (push) Has been cancelled
CodeQL Advanced / Analyze (c-cpp) (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
2026-08-18 23:33:06 +02:00
Andrea Mazzoleni
ea37d5a38b More informational error level messages
Some checks failed
Build / build-mac (push) Has been cancelled
Build / build-linux (push) Has been cancelled
Build / build-win (push) Has been cancelled
CodeQL Advanced / Analyze (c-cpp) (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
2026-08-04 09:46:55 +02:00
Andrea Mazzoleni
af0b3c8451 Add a new informational error level for messages 2026-08-04 09:46:55 +02:00
Andrea Mazzoleni
b7dcf8659e Enable lock file support on Windows using CreateFileW with exclusive share mode 2026-08-04 09:46:55 +02:00
Andrea Mazzoleni
71684faded Update CHECKSUMS
Some checks failed
Build / build-mac (push) Has been cancelled
Build / build-linux (push) Has been cancelled
Build / build-win (push) Has been cancelled
CodeQL Advanced / Analyze (c-cpp) (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
2026-07-19 18:22:30 +02:00
Andrea Mazzoleni
3f280486bd Fix regression with both touch and threshold active at the same time 2026-07-19 17:55:29 +02:00
Andrea Mazzoleni
f1889de305 Update to MuseAir v2
Some checks failed
Build / build-mac (push) Has been cancelled
Build / build-linux (push) Has been cancelled
Build / build-win (push) Has been cancelled
CodeQL Advanced / Analyze (c-cpp) (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
2026-07-14 10:40:58 +02:00
Andrea Mazzoleni
0814463777 Add MuseAir analysis
Some checks are pending
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-win (push) Waiting to run
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
2026-07-13 15:13:04 +02:00
Andrea Mazzoleni
99a5a78570 Extend MuseAirLoong to support any input length by buffering inputs under 32 bytes 2026-07-13 11:03:13 +02:00
Andrea Mazzoleni
1093ba9bbb Abort saving content file if rehash blocks exist with undefined previous checksum 2026-07-13 11:02:33 +02:00
Andrea Mazzoleni
a144fdc721 Update to MuseAir v1
Some checks failed
Build / build-mac (push) Has been cancelled
Build / build-linux (push) Has been cancelled
Build / build-win (push) Has been cancelled
CodeQL Advanced / Analyze (c-cpp) (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
2026-07-11 16:55:19 +02:00
Andrea Mazzoleni
c8cb392a89 Move task ring list mutation under io_mutex for code hygiene, no bug
Some checks failed
Build / build-mac (push) Has been cancelled
Build / build-linux (push) Has been cancelled
Build / build-win (push) Has been cancelled
CodeQL Advanced / Analyze (c-cpp) (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
2026-07-06 17:01:34 +02:00
Andrea Mazzoleni
952ea337e7 Protect candidate file copy under stamp_lock during multithread scan 2026-07-06 17:01:34 +02:00
Andrea Mazzoleni
562d59d9c8 Avoid a folding VLA warning in clang 2026-07-06 15:57:49 +02:00
Andrea Mazzoleni
e088672ccd Fix false file modification report after threshold-aborted sync 2026-07-06 15:34:22 +02:00