Andrea Mazzoleni
fd65dbd9ea
Fix undefined behavior by making TommyDS foreach callback signatures take void*
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-arm32 (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-08-24 23:03:00 +02:00
Andrea Mazzoleni
15831064a1
Extend parent directory fsync after content file rename to all platforms
2026-08-18 23:33:59 +02:00
Andrea Mazzoleni
b959f0056e
Quiesce read-ahead before thermal spin-down
2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
ef6fa54ee2
Fix parity writer error propagation in io_flush and abort sync on parity write failures
2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
fa0a77f84c
Add missing esc_tag() in status and parity split log tags
2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
d4ae953137
Fix sopen_write call signature in HAVE_MT_WRITE block by adding stream flags
2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
9ef9155ccf
Enforce content file CRC as terminal by rejecting trailing data and terminating parse loop
2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
9c6e3952c5
Remove unused MetroHash implementation and references
2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
8c9a91c93b
Improve error message when content files are damaged or truncated
2026-08-18 23:33:58 +02:00
Andrea Mazzoleni
f453a72369
Preserve recovery state until a full clean sync completes
2026-08-18 23:33:57 +02:00
Andrea Mazzoleni
9255157519
Fix per-file block index overflow beyond 32 bits
2026-08-18 23:33:57 +02:00
Andrea Mazzoleni
6c8bee76fa
Continue snapshot renames across per-disk failures
2026-08-18 23:33:57 +02:00
Andrea Mazzoleni
3d23853de7
Log explicit warning when missing snapshots fall back to live filesystem
2026-08-18 23:33:57 +02:00
Andrea Mazzoleni
7b7a2d5d00
Fail sync if snapshot setup fails on a supported filesystem
2026-08-18 23:33:57 +02:00
Andrea Mazzoleni
661e539f45
Defer pending snapshot promotion until parity sync
2026-08-18 23:33:57 +02:00
Andrea Mazzoleni
0ca7c65049
Support filesystems with invalid inode numbers on individual files
2026-08-18 23:33:56 +02:00
Andrea Mazzoleni
c79f82bc99
Update to the new RAID library
2026-08-18 23:33:56 +02:00
Andrea Mazzoleni
1b2f619852
Fix typo in monothread implementation
2026-08-18 23:33:56 +02:00
Andrea Mazzoleni
3a8c5917fd
Fix leak on error in state_write
2026-08-18 23:33:56 +02:00
Andrea Mazzoleni
3484965b89
Align data disk UUID validation and write logic with parity splits using content_uuid
2026-08-18 23:33:55 +02:00
Andrea Mazzoleni
452adbd8d9
Optimize redundant devuuid() calls by storing content file UUIDs in a dedicated field
2026-08-18 23:33:55 +02:00
Andrea Mazzoleni
133e527643
Add support for specifying case-insensitive SMART attribute names in the smartignore option
2026-08-18 23:33:55 +02:00
Andrea Mazzoleni
00b4cbafd0
Merge the CLI and Daemon portable interface
2026-08-18 23:33:55 +02:00
Andrea Mazzoleni
52f7c2184f
Add support for custom smartctl info options using a [info: ...] tag
2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
d7c6a27c6d
Refactor portable support
2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
bb401e2e3f
Rename randomize to os_randomize
2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
f40b2decdb
Further conversions from 32 to 64 bits
2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
bbd3c23cd2
Migrate block_off_t to 64-bit with updated CLI parsing, VLQ serialization, and format specifiers
2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
87313c2bfd
Delete snapshot links in Windows
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
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
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
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
2fc38017a8
Add Btrfs snapshot support for atomic sync and recovery consistency
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
a73e970b50
Fix undefined _linux macro typo to __linux__
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
af0b3c8451
Add a new informational error level for messages
2026-08-04 09:46:55 +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
cc99a22929
Add protection for block position integer overflow
2026-06-03 19:07:31 +02:00
Andrea Mazzoleni
6e59f2ca7b
Print the stop message also with the GUI
2026-06-03 12:33:29 +02:00
Andrea Mazzoleni
cf452a091d
Log using log_error all errors that are not resulting in an early termination
2026-06-03 12:33:29 +02:00
Andrea Mazzoleni
96e20b3912
Switch esc_tag and path formatting to a contiguous thread-local circular pool to eliminate stack bloat
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-05-29 11:22:04 +02:00
Andrea Mazzoleni
ee5c7ebf13
Verify smartignore range
2026-05-21 16:08:03 +02:00
Andrea Mazzoleni
00e50bd965
Fix wrong sizeof
2026-05-20 00:27:12 +02:00