Commit graph

2716 commits

Author SHA1 Message Date
Andrea Mazzoleni
badff9d548 Skip unsynced block counting for synchronized content 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
902c19b668 Specialize block hash copies for the full hash size 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
b64c28b537 Serialize deleted blocks by ordered parity extents 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
6b5b0098c7 Detect rebuild blocks during state preparation 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
31f44958a3 Avoid redundant unsynced block scans when writing content 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
1073c97e0a Skip extent locking during single-threaded content serialization 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
03545f1685 Resolve file-to-parity mappings once per extent while writing content 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
d8ea998eb2 Support native advise modes in buffered streams 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
b762ab9e73 Update timed multithreaded content writers 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
1b0fa3eb46 Write content block hashes in buffered runs 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
2952ce4341 Inline buffered writes and process stream boundaries in bulk 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
71f0735ef7 Decode content block hashes directly from buffered runs 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
e103590f21 Inline buffered reads and use memcpy for the fast path 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
17b24c8d21 Allocate content extents by run instead of by block 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
b14f703d2b Avoid redundant block initialization when loading content files 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
bc564e7465 Improve speed benchmark stability with adaptive 1 ms sampling and best-result selection 2026-09-10 23:51:30 +02:00
Andrea Mazzoleni
2b784748e3 Propagate final writeback errors from advise_close 2026-09-09 21:25:32 +02:00
Andrea Mazzoleni
4a616558ec Treat trusted REBUILD hash mismatches as persistent silent data corruption 2026-09-09 15:46:59 +02:00
Andrea Mazzoleni
62ae6c3552 Replace physical reach tracking with the natural file and parity EOF
Some checks are pending
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
Build / build-freebsd (push) Waiting to run
Build / build-musl (push) Waiting to run
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
2026-09-09 13:03:11 +02:00
Andrea Mazzoleni
873a5561e4 Clarify moved and relocated file detection in the manpage 2026-09-09 12:36:43 +02:00
Andrea Mazzoleni
eae9402223 Add Bcachefs snapshot testing to the Linux CI workflow 2026-09-09 09:17:52 +02:00
Andrea Mazzoleni
b9703737fa Normalize Windows snapshot paths with GetFullPathNameW before volume resolution
Some checks are pending
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
Build / build-freebsd (push) Waiting to run
Build / build-musl (push) Waiting to run
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
2026-09-09 00:21:49 +02:00
Andrea Mazzoleni
b718b25b0f Enable parallel builds in github 2026-09-09 00:15:20 +02:00
Andrea Mazzoleni
0e94163371 Add NTFS snapshot testing on Windows using isolated VHD volumes 2026-09-09 00:06:27 +02:00
Andrea Mazzoleni
9c985612ea Make snapshot replacement crash-safe using retiring snapshots 2026-09-08 23:52:08 +02:00
Andrea Mazzoleni
b379e514fb Add ZFS snapshot testing alongside Btrfs 2026-09-08 23:23:30 +02:00
Andrea Mazzoleni
7ba5f63d2d Disallow hashsize 2 and enforce a minimum hash size of 4 bytes
Some checks are pending
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
Build / build-freebsd (push) Waiting to run
Build / build-musl (push) Waiting to run
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
2026-09-08 13:36:51 +02:00
Andrea Mazzoleni
fe2a07fc78 Defer rehash completion for positions containing unsynchronized blocks 2026-09-08 13:36:51 +02:00
Andrea Mazzoleni
76dd3d28ea Clarify physical_reach_size semantics and non-contiguous parity holes left by fix 2026-09-08 13:36:51 +02:00
Andrea Mazzoleni
34ac9a08e0 Import deallocated files when falling back directly to stable snapshot 2026-09-08 13:36:51 +02:00
Andrea Mazzoleni
78337d7b70 Document snapshot namespace limitation across multiple configurations in known issues 2026-09-08 10:55:00 +02:00
Andrea Mazzoleni
9db5dc5ed1 Mark sync as incomplete on SIGINT during thermal cooldown to prevent premature commit 2026-09-08 10:42:14 +02:00
Andrea Mazzoleni
e8726ce95a Add regression tests and document parity size requirements when adding a parity level 2026-09-08 10:34:26 +02:00
Andrea Mazzoleni
6971bd58c9 Improve missing parity warning to recommend initialization via fix instead of force-full sync 2026-09-08 09:58:57 +02:00
Andrea Mazzoleni
d6b0786eca Document recovery behavior after interrupted multi-parity sync in Known Issues 2026-09-08 09:13:08 +02:00
Andrea Mazzoleni
5beb465d42 Replace is_current and is_outofdate flags with 3-state recovery field in check.c 2026-09-08 08:59:37 +02:00
Andrea Mazzoleni
19a5bd781f Always write independently recovered current blocks even if parity repair fails
Some checks are pending
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
Build / build-freebsd (push) Waiting to run
Build / build-musl (push) Waiting to run
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
2026-09-08 00:19:16 +02:00
Andrea Mazzoleni
5827c967a3 Report progress messages before filesystem snapshot operations 2026-09-07 22:34:53 +02:00
Andrea Mazzoleni
1c9e5df479 Truncate parity splits backwards from the tail to preserve intermediate split boundaries 2026-09-07 22:15:45 +02:00
Andrea Mazzoleni
db94550cd7 Remove physical offset sorting support and default to directory order 2026-09-07 22:15:45 +02:00
Andrea Mazzoleni
12c41ff1d1 Implement two-phase file scan with dedicated discovery struct and volatile hardlink normalization 2026-09-07 22:15:45 +02:00
Andrea Mazzoleni
b113accaad Fix incorrect st_nlink inheritance from directory in Windows stream scanner 2026-09-07 15:31:39 +02:00
Andrea Mazzoleni
c9fbc058ef Fix reversed content-suffix matching direction in filter_content 2026-09-07 15:21:53 +02:00
Andrea Mazzoleni
918d849739 Reset thermal_highest_temperature before readings to ensure fail-open on SMART error 2026-09-07 14:43:38 +02:00
Andrea Mazzoleni
f4be0b54d0 Reuse imported CURRENT BLK/REBUILD blocks in OLD-history recovery retry 2026-09-07 14:26:20 +02:00
Andrea Mazzoleni
6dd1f6c27a Document risk of false success after partial fix recovery 2026-09-07 14:10:24 +02:00
Andrea Mazzoleni
c09b850047 Keep generation ambiguous for legacy hashes in check repair to prevent false CURRENT certification on size changes
Some checks are pending
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
Build / build-freebsd (push) Waiting to run
Build / build-musl (push) Waiting to run
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
2026-09-07 12:02:24 +02:00
Andrea Mazzoleni
b82ee5ff56 Separate hash identity from canonical padding validation in check to fix CHG generation detection with MuseAir 2026-09-07 11:45:16 +02:00
Andrea Mazzoleni
31710bc1f3 Distinguish system temperature sensor from thermal model ambient reference 2026-09-07 11:38:49 +02:00
Andrea Mazzoleni
5e4cca1fe3 Detect and auto-heal content replicas left at different publication generations 2026-09-07 10:56:48 +02:00