Andrea Mazzoleni
cea9015933
Add experimental XXH3 hash implementation with SIMD acceleration
...
Memory write speed using the C memset() function:
memset 57952
Hash used to check the data blocks integrity:
best murmur3 spooky2 museair xxh3 xsse2 xavx2
hash spooky2 6172 17914 32048 14627 23613 44034
2026-09-30 20:06:19 +02:00
Andrea Mazzoleni
f0ae584473
Optimize hash performance with custom compiler flags
2026-09-30 16:07:36 +02:00
Andrea Mazzoleni
426f6dc0bc
Treat ENOTDIR as missing file in filter_existence and handle_open_create
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-30 16:07:36 +02:00
Andrea Mazzoleni
eb75cef0fe
Avoid touch failing on missing files deleted or moved since the last sync
2026-09-30 16:07:36 +02:00
Andrea Mazzoleni
66ae70481c
Update TODO
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-29 10:59:57 +02:00
Andrea Mazzoleni
baa833f13c
Update CHECKSUMS
2026-09-29 09:33:22 +02:00
Andrea Mazzoleni
2a2b876fef
Reject incomplete ZFS device lists when zpool status fails
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-28 21:39:41 +02:00
Andrea Mazzoleni
6f74455864
Reject negative and out-of-range values in non-negative integer parsing
2026-09-28 21:05:56 +02:00
Andrea Mazzoleni
99a79b7049
Avoid modifying existing pool entries when symlink creation finds a conflict
2026-09-28 16:35:47 +02:00
Andrea Mazzoleni
28aae9d289
Use 64-bit block counters for the status scrub graph
2026-09-28 16:22:56 +02:00
Andrea Mazzoleni
158865f10e
Copy generated documentation to the source doc directory in GNUmakefile
2026-09-28 15:58:34 +02:00
Andrea Mazzoleni
aa8445e7a9
Report smartctl open failures as unknown power state
2026-09-28 15:57:11 +02:00
Andrea Mazzoleni
720073d80d
Skip inaccessible disks and parity levels in device operations
2026-09-28 15:34:54 +02:00
Andrea Mazzoleni
316a9cf135
Show N/A for impossible SMART parity configurations
2026-09-28 15:09:55 +02:00
Andrea Mazzoleni
57e15416ae
Abort spindown when filesystem flush fails
2026-09-28 15:09:55 +02:00
Andrea Mazzoleni
d210e95997
Avoid touch hiding files modified since the last sync
2026-09-28 14:11:51 +02:00
Andrea Mazzoleni
087781cee9
Reject parity split layouts exceeding INT64_MAX total size
2026-09-28 14:11:51 +02:00
Andrea Mazzoleni
c2be8536bf
Reject non-regular data and parity files after opening
2026-09-28 11:54:11 +02:00
Andrea Mazzoleni
8f0bc80774
Preserve .snapraidignore candidates during array recovery search with nohidden
2026-09-28 11:52:08 +02:00
Andrea Mazzoleni
bff4bb237b
Avoid truncating untracked file tails during partial fix
2026-09-28 11:37:58 +02:00
Andrea Mazzoleni
7decc78c97
Apply filters to empty directories during scan and match subdirectories in directory rules
2026-09-28 11:31:56 +02:00
Andrea Mazzoleni
11b17d7d04
Make filesystem snapshot renames durable before parity updates
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-27 23:52:31 +02:00
Andrea Mazzoleni
cd8b331a30
Document why automatic copy search runs before snapshot selection
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-27 20:17:26 +02:00
Andrea Mazzoleni
e7135d101b
Validate hardlink entries without following symbolic links during check and fix
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-27 11:31:35 +02:00
Andrea Mazzoleni
d5e18adb95
Build Linux and Windows out-of-tree in dedicated linux/ and windows/ directories
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-26 19:06:59 +02:00
Andrea Mazzoleni
0138b48023
Avoid recreating missing files and directories during fix with syncedonly (-e/-b)
2026-09-26 18:17:25 +02:00
Andrea Mazzoleni
6b8d3e23a0
Drop support for pre-SnapRAID 11 content formats and require migration with SnapRAID 14.x
2026-09-26 17:15:09 +02:00
Andrea Mazzoleni
f80e93e9d3
Keep disks with pending deallocation records mapped in the content file
2026-09-26 16:37:43 +02:00
Andrea Mazzoleni
b023939c6b
Track current and previous hash generations for deallocated blocks
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-26 00:02:24 +02:00
Andrea Mazzoleni
0440d74fb5
Detect Bcachefs subvolume roots using STATX_SUBVOL instead of assuming inode 4096
2026-09-25 23:24:27 +02:00
Andrea Mazzoleni
a6a1cec115
Resolve ZFS dataset mounts through mountinfo, including legacy mountpoints
2026-09-25 22:51:55 +02:00
Andrea Mazzoleni
1aa6d2b787
Reject content files with parity split sizes not aligned to the configured block size
2026-09-25 17:19:40 +02:00
Andrea Mazzoleni
fbc2107735
Document reserved SnapRAID file, directory, and snapshot names including Windows case-insensitive variants
2026-09-25 17:19:40 +02:00
Andrea Mazzoleni
b070cbb894
Fix inline asm memory operand sizes for array-backed constants
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-25 13:33:26 +02:00
Andrea Mazzoleni
608e78f3a6
Remove unrecoverable suffix note from Known Issues in documentation
2026-09-25 13:20:34 +02:00
Andrea Mazzoleni
5b0a8e0c8e
Restore file mtime after synced-only recovery writes
2026-09-25 10:48:56 +02:00
Andrea Mazzoleni
46dbfa9b08
Reject parity disk filters combined with file selection filters
2026-09-25 10:22:07 +02:00
Andrea Mazzoleni
7662b80023
Keep automatic array search within data-disk filesystem boundaries
2026-09-25 10:14:36 +02:00
Andrea Mazzoleni
ce7d29f178
Keep hardlink target files selected with selected hardlinks
2026-09-25 10:08:57 +02:00
Andrea Mazzoleni
13267085d1
Fail closed on invalid .snapraidignore control files
2026-09-25 09:44:09 +02:00
Andrea Mazzoleni
099f3c7429
Use DT_* values directly for scan entry types
2026-09-25 09:44:09 +02:00
Andrea Mazzoleni
a92b19d9c2
Use lstat for empty objects and leave type mismatches unrecoverable
2026-09-25 08:48:43 +02:00
Andrea Mazzoleni
69967b1262
Exclude blockless objects from filter-error selection
2026-09-25 08:24:50 +02:00
Andrea Mazzoleni
190efbefb2
Make search candidate I/O failures nonfatal during recovery
2026-09-25 08:24:50 +02:00
Andrea Mazzoleni
3c155e925d
Fix AArch64 NEON table loads on big-endian systems
2026-09-25 08:24:50 +02:00
Andrea Mazzoleni
5f68fda7ae
Propagate non-capacity errors during parity split growth
2026-09-24 21:52:42 +02:00
Andrea Mazzoleni
bcc06e10c6
Reject parity sizes exceeding data_off_t range and remove redundant block size casts
2026-09-24 20:40:27 +02:00
Andrea Mazzoleni
149b408c38
Skip disk cache statistics for mapping holes
2026-09-24 19:49:46 +02:00
Andrea Mazzoleni
bcfd2734b6
Quiesce scrub read-ahead before autosave and distinguish read/write barriers
2026-09-24 19:49:46 +02:00
Andrea Mazzoleni
fba3f74538
Handle MinGW path conversion failures with ENAMETOOLONG and EILSEQ instead of aborting
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-24 12:57:17 +02:00