Commit graph

2838 commits

Author SHA1 Message Date
Andrea Mazzoleni
25c86bc1e7 Remove leading double underscores from header include guards 2026-10-15 15:35:31 +02:00
Andrea Mazzoleni
cc18ed39c6 Keep generic license texts without embedded copyright notices 2026-10-15 15:35:31 +02:00
Andrea Mazzoleni
f775075bc5 Synchronize file metadata for new and modified files during scan on Windows 2026-10-15 15:35:31 +02:00
Andrea Mazzoleni
3b8c8c10e7 Use 64-bit TommyDS hash functions on 64-bit architectures 2026-10-15 15:35:31 +02:00
Andrea Mazzoleni
88c54f041e Update to TommyDS v4.0 2026-10-15 15:35:31 +02:00
Andrea Mazzoleni
a39fb132f8 Normalize comment style
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-10-07 09:14:01 +02:00
Andrea Mazzoleni
8fe9331f42 Limit unsynced parity sweep to the invalid window tracked during content parsing
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-10-06 10:49:24 +02:00
Andrea Mazzoleni
2a60279674 Avoid strlen in deferred pathset insertion by pre-caching path hash in pathset.index 2026-10-06 09:17:23 +02:00
Andrea Mazzoleni
6ae014d6ed Align integer gen and rec loops to 64 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-10-05 15:41:01 +02:00
Andrea Mazzoleni
143813a90e Store initial file path inline with struct snapraid_file 2026-10-05 15:41:01 +02:00
Andrea Mazzoleni
9f24ca00d1 Use atomic operations instead of mutex for memory allocation counter 2026-10-05 15:41:01 +02:00
Andrea Mazzoleni
8589327114 Defer file hash table insertions and pre-reserve bucket capacity in state_read_content 2026-10-05 15:41:01 +02:00
Andrea Mazzoleni
93c39d5526 Add tommy_hashdyn_reserve to pre-allocate hash buckets for expected elements 2026-10-05 15:41:01 +02:00
Andrea Mazzoleni
0d2f466b11 Count unsynced blocks using an extent event sweep instead of per-block lookups 2026-10-05 15:41:01 +02:00
Andrea Mazzoleni
3d7a722ab2 Avoid redundant strlen and duplicate traversals when loading content strings 2026-10-05 15:41:01 +02:00
Andrea Mazzoleni
969cb5ca31 Make sgetbs() return the number of characters read on success 2026-10-05 15:41:01 +02:00
Andrea Mazzoleni
97419fb67f Cache BLOCK_HASH_SIZE in local variable in block run read and write loops 2026-10-05 14:04:15 +02:00
Andrea Mazzoleni
94c7d3ef9a Avoid memory preinitialization in malloc_nofail and use calloc directly in calloc_nofail 2026-10-05 14:04:15 +02:00
Andrea Mazzoleni
ec71f519b0 Align critical loops to 64 bytes using __align_loops attribute 2026-10-05 14:04:12 +02:00
Andrea Mazzoleni
91761768a0 Document rare occurrence of missing info branch in content loading 2026-10-05 00:11:51 +02:00
Andrea Mazzoleni
0ad0913ef2 Use os_tick_ns() monotonic timer and add compiler memory barriers
Some checks failed
Build / build-mac (push) Has been cancelled
Build / build-linux (push) Has been cancelled
Build / build-arm32 (push) Has been cancelled
Build / build-win (push) Has been cancelled
Build / build-freebsd (push) Has been cancelled
Build / build-musl (push) Has been cancelled
CodeQL Advanced / Analyze (c-cpp) (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
2026-10-02 11:09:42 +02:00
Andrea Mazzoleni
dcb3c7db37 Add CONFIG_NEON/32 defines 2026-10-02 10:43:11 +02:00
Andrea Mazzoleni
a7a85a259c Add os_tick_us() and os_tick_ns() monotonic high-resolution timers 2026-10-02 10:38:05 +02:00
Andrea Mazzoleni
68b94bfdf5 Document interaction between filesystem snapshots and external backup tools 2026-10-02 09:56:51 +02:00
Andrea Mazzoleni
e42876e620 Update HISTORY 2026-10-01 19:10:19 +02:00
Andrea Mazzoleni
0b930b8a31 Add unique descriptive log_fatal messages with field names to all decoding_error calls
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-10-01 09:30:38 +02:00
Andrea Mazzoleni
70947d4054 Print abort stacktrace to stderr and exit with code 134 on Windows 2026-10-01 08:55:44 +02:00
Andrea Mazzoleni
5b402fc462 Normalize legacy out-of-range content nanoseconds to STAT_NSEC_INVALID 2026-10-01 08:43:59 +02:00
Andrea Mazzoleni
edb3cacb77 Optimize hash performance with custom unroll 2026-10-01 00:43:48 +02:00
Andrea Mazzoleni
31570ae473 Document MuseAir and SpookyHash collision analysis 2026-10-01 00:09:22 +02:00
Andrea Mazzoleni
426f6dc0bc Treat ENOTDIR as missing file in filter_existence and handle_open_create
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-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
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-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
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-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
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-27 23:52:31 +02:00