Commit graph

  • 5871fd4da3 Update CHECKSUMS master Andrea Mazzoleni 2026-10-23 11:05:30 +02:00
  • 34981ecc8b Auto update gh-pages Andrea Mazzoleni 2026-10-23 10:51:21 +02:00
  • 4054832c7e Add best-effort Linux disk instance mappings using boot_id and diskseq v15.1 Andrea Mazzoleni 2026-10-22 21:36:39 +02:00
  • 7275872c80 Pin build-linux runner to ubuntu-24.04 for zfs kernel modules Andrea Mazzoleni 2026-10-22 20:18:52 +02:00
  • e27d221793 Update HISTORY Andrea Mazzoleni 2026-10-22 18:50:18 +02:00
  • 819bb75eaa Make test and doc variables in Makefile.am compatible with BSD make Andrea Mazzoleni 2026-10-18 22:30:58 +02:00
  • 7878bc3d3d Update TODO Andrea Mazzoleni 2026-10-18 22:19:56 +02:00
  • 8a5b2adb75 Remove unused checked_read state flag Andrea Mazzoleni 2026-10-18 11:23:04 +02:00
  • a0d6bc288a Fix touch abort before the first sync when no content file exists Andrea Mazzoleni 2026-10-18 10:45:14 +02:00
  • 20e081d5ac Update CHECKSUMS Andrea Mazzoleni 2026-10-17 21:23:59 +02:00
  • 7d7c835ec1 Auto update Andrea Mazzoleni 2026-10-16 09:19:37 +02:00
  • 7bd55501d4 Auto update Andrea Mazzoleni 2026-10-16 09:17:18 +02:00
  • 4a9871d087 Use mulhash for integer keys while retaining inthash_u64 on 32-bit architectures v15.0 Andrea Mazzoleni 2026-10-14 18:46:56 +02:00
  • 25c86bc1e7 Remove leading double underscores from header include guards Andrea Mazzoleni 2026-10-13 11:20:19 +02:00
  • cc18ed39c6 Keep generic license texts without embedded copyright notices Andrea Mazzoleni 2026-10-12 10:57:51 +02:00
  • f775075bc5 Synchronize file metadata for new and modified files during scan on Windows Andrea Mazzoleni 2026-10-11 23:28:55 +02:00
  • 3b8c8c10e7 Use 64-bit TommyDS hash functions on 64-bit architectures Andrea Mazzoleni 2026-10-07 19:13:27 +02:00
  • 88c54f041e Update to TommyDS v4.0 Andrea Mazzoleni 2026-10-07 18:44:12 +02:00
  • a39fb132f8 Normalize comment style Andrea Mazzoleni 2026-10-07 09:09:39 +02:00
  • 8fe9331f42 Limit unsynced parity sweep to the invalid window tracked during content parsing Andrea Mazzoleni 2026-10-06 10:42:03 +02:00
  • 2a60279674 Avoid strlen in deferred pathset insertion by pre-caching path hash in pathset.index Andrea Mazzoleni 2026-10-06 09:17:23 +02:00
  • 6ae014d6ed Align integer gen and rec loops to 64 bytes Andrea Mazzoleni 2026-10-05 13:46:22 +02:00
  • 143813a90e Store initial file path inline with struct snapraid_file Andrea Mazzoleni 2026-10-03 17:12:44 +02:00
  • 9f24ca00d1 Use atomic operations instead of mutex for memory allocation counter Andrea Mazzoleni 2026-10-03 17:28:26 +02:00
  • 8589327114 Defer file hash table insertions and pre-reserve bucket capacity in state_read_content Andrea Mazzoleni 2026-10-03 21:19:56 +02:00
  • 93c39d5526 Add tommy_hashdyn_reserve to pre-allocate hash buckets for expected elements Andrea Mazzoleni 2026-10-03 21:11:09 +02:00
  • 0d2f466b11 Count unsynced blocks using an extent event sweep instead of per-block lookups Andrea Mazzoleni 2026-10-03 20:31:41 +02:00
  • 3d7a722ab2 Avoid redundant strlen and duplicate traversals when loading content strings Andrea Mazzoleni 2026-10-03 17:00:24 +02:00
  • 969cb5ca31 Make sgetbs() return the number of characters read on success Andrea Mazzoleni 2026-10-03 16:50:31 +02:00
  • 97419fb67f Cache BLOCK_HASH_SIZE in local variable in block run read and write loops Andrea Mazzoleni 2026-10-03 21:02:13 +02:00
  • 94c7d3ef9a Avoid memory preinitialization in malloc_nofail and use calloc directly in calloc_nofail Andrea Mazzoleni 2026-10-04 22:41:57 +02:00
  • ec71f519b0 Align critical loops to 64 bytes using __align_loops attribute Andrea Mazzoleni 2026-10-05 11:32:55 +02:00
  • 91761768a0 Document rare occurrence of missing info branch in content loading Andrea Mazzoleni 2026-10-03 20:16:20 +02:00
  • 0ad0913ef2 Use os_tick_ns() monotonic timer and add compiler memory barriers Andrea Mazzoleni 2026-10-02 10:45:30 +02:00
  • dcb3c7db37 Add CONFIG_NEON/32 defines Andrea Mazzoleni 2026-10-02 10:43:11 +02:00
  • a7a85a259c Add os_tick_us() and os_tick_ns() monotonic high-resolution timers Andrea Mazzoleni 2026-10-02 10:13:35 +02:00
  • 68b94bfdf5 Document interaction between filesystem snapshots and external backup tools Andrea Mazzoleni 2026-10-01 19:55:23 +02:00
  • e42876e620 Update HISTORY Andrea Mazzoleni 2026-10-01 19:10:19 +02:00
  • 0b930b8a31 Add unique descriptive log_fatal messages with field names to all decoding_error calls Andrea Mazzoleni 2026-10-01 09:05:01 +02:00
  • 70947d4054 Print abort stacktrace to stderr and exit with code 134 on Windows Andrea Mazzoleni 2026-10-01 08:55:44 +02:00
  • 5b402fc462 Normalize legacy out-of-range content nanoseconds to STAT_NSEC_INVALID Andrea Mazzoleni 2026-10-01 08:41:43 +02:00
  • edb3cacb77 Optimize hash performance with custom unroll Andrea Mazzoleni 2026-09-30 13:31:34 +02:00
  • 31570ae473 Document MuseAir and SpookyHash collision analysis Andrea Mazzoleni 2026-09-30 18:04:37 +02:00
  • cea9015933 Add experimental XXH3 hash implementation with SIMD acceleration xxh3 Andrea Mazzoleni 2026-09-30 09:13:57 +02:00
  • f0ae584473 Optimize hash performance with custom compiler flags Andrea Mazzoleni 2026-09-30 13:31:34 +02:00
  • 426f6dc0bc Treat ENOTDIR as missing file in filter_existence and handle_open_create Andrea Mazzoleni 2026-09-30 16:03:07 +02:00
  • eb75cef0fe Avoid touch failing on missing files deleted or moved since the last sync Andrea Mazzoleni 2026-09-30 15:37:52 +02:00
  • 66ae70481c Update TODO Andrea Mazzoleni 2026-09-29 10:59:57 +02:00
  • e3e3e6fc98 Auto update Andrea Mazzoleni 2026-09-29 09:34:27 +02:00
  • baa833f13c Update CHECKSUMS Andrea Mazzoleni 2026-09-29 09:33:22 +02:00
  • 2a2b876fef Reject incomplete ZFS device lists when zpool status fails v15.0rc2 Andrea Mazzoleni 2026-09-28 21:36:05 +02:00
  • 6f74455864 Reject negative and out-of-range values in non-negative integer parsing Andrea Mazzoleni 2026-09-28 21:03:33 +02:00
  • 99a79b7049 Avoid modifying existing pool entries when symlink creation finds a conflict Andrea Mazzoleni 2026-09-28 16:35:47 +02:00
  • 28aae9d289 Use 64-bit block counters for the status scrub graph Andrea Mazzoleni 2026-09-28 16:22:56 +02:00
  • 158865f10e Copy generated documentation to the source doc directory in GNUmakefile Andrea Mazzoleni 2026-09-28 15:58:34 +02:00
  • aa8445e7a9 Report smartctl open failures as unknown power state Andrea Mazzoleni 2026-09-28 15:43:37 +02:00
  • 720073d80d Skip inaccessible disks and parity levels in device operations Andrea Mazzoleni 2026-09-28 15:18:20 +02:00
  • 316a9cf135 Show N/A for impossible SMART parity configurations Andrea Mazzoleni 2026-09-28 14:47:58 +02:00
  • 57e15416ae Abort spindown when filesystem flush fails Andrea Mazzoleni 2026-09-28 14:21:33 +02:00
  • d210e95997 Avoid touch hiding files modified since the last sync Andrea Mazzoleni 2026-09-28 14:09:26 +02:00
  • 087781cee9 Reject parity split layouts exceeding INT64_MAX total size Andrea Mazzoleni 2026-09-28 12:16:07 +02:00
  • c2be8536bf Reject non-regular data and parity files after opening Andrea Mazzoleni 2026-09-28 11:54:11 +02:00
  • 8f0bc80774 Preserve .snapraidignore candidates during array recovery search with nohidden Andrea Mazzoleni 2026-09-28 11:48:19 +02:00
  • bff4bb237b Avoid truncating untracked file tails during partial fix Andrea Mazzoleni 2026-09-28 11:37:58 +02:00
  • 7decc78c97 Apply filters to empty directories during scan and match subdirectories in directory rules Andrea Mazzoleni 2026-09-28 11:24:59 +02:00
  • 11b17d7d04 Make filesystem snapshot renames durable before parity updates Andrea Mazzoleni 2026-09-27 23:52:31 +02:00
  • cd8b331a30 Document why automatic copy search runs before snapshot selection Andrea Mazzoleni 2026-09-27 20:17:26 +02:00
  • e7135d101b Validate hardlink entries without following symbolic links during check and fix Andrea Mazzoleni 2026-09-27 11:16:26 +02:00
  • d5e18adb95 Build Linux and Windows out-of-tree in dedicated linux/ and windows/ directories Andrea Mazzoleni 2026-09-26 18:27:53 +02:00
  • 0138b48023 Avoid recreating missing files and directories during fix with syncedonly (-e/-b) Andrea Mazzoleni 2026-09-26 17:58:24 +02:00
  • 6b8d3e23a0 Drop support for pre-SnapRAID 11 content formats and require migration with SnapRAID 14.x Andrea Mazzoleni 2026-09-26 16:29:26 +02:00
  • f80e93e9d3 Keep disks with pending deallocation records mapped in the content file Andrea Mazzoleni 2026-09-26 16:32:42 +02:00
  • b023939c6b Track current and previous hash generations for deallocated blocks Andrea Mazzoleni 2026-09-25 23:40:58 +02:00
  • 0440d74fb5 Detect Bcachefs subvolume roots using STATX_SUBVOL instead of assuming inode 4096 Andrea Mazzoleni 2026-09-25 23:15:17 +02:00
  • a6a1cec115 Resolve ZFS dataset mounts through mountinfo, including legacy mountpoints Andrea Mazzoleni 2026-09-25 17:46:03 +02:00
  • 1aa6d2b787 Reject content files with parity split sizes not aligned to the configured block size Andrea Mazzoleni 2026-09-25 17:17:14 +02:00
  • fbc2107735 Document reserved SnapRAID file, directory, and snapshot names including Windows case-insensitive variants Andrea Mazzoleni 2026-09-25 17:09:49 +02:00
  • b070cbb894 Fix inline asm memory operand sizes for array-backed constants Andrea Mazzoleni 2026-09-25 13:33:26 +02:00
  • 608e78f3a6 Remove unrecoverable suffix note from Known Issues in documentation Andrea Mazzoleni 2026-09-25 13:20:34 +02:00
  • 5b0a8e0c8e Restore file mtime after synced-only recovery writes Andrea Mazzoleni 2026-09-25 10:41:50 +02:00
  • 46dbfa9b08 Reject parity disk filters combined with file selection filters Andrea Mazzoleni 2026-09-25 10:22:07 +02:00
  • 7662b80023 Keep automatic array search within data-disk filesystem boundaries Andrea Mazzoleni 2026-09-25 10:08:00 +02:00
  • ce7d29f178 Keep hardlink target files selected with selected hardlinks Andrea Mazzoleni 2026-09-25 09:40:58 +02:00
  • 13267085d1 Fail closed on invalid .snapraidignore control files Andrea Mazzoleni 2026-09-25 09:21:06 +02:00
  • 099f3c7429 Use DT_* values directly for scan entry types Andrea Mazzoleni 2026-09-25 09:21:04 +02:00
  • a92b19d9c2 Use lstat for empty objects and leave type mismatches unrecoverable Andrea Mazzoleni 2026-09-25 08:36:19 +02:00
  • 69967b1262 Exclude blockless objects from filter-error selection Andrea Mazzoleni 2026-09-25 08:19:02 +02:00
  • 190efbefb2 Make search candidate I/O failures nonfatal during recovery Andrea Mazzoleni 2026-09-25 08:12:36 +02:00
  • 3c155e925d Fix AArch64 NEON table loads on big-endian systems Andrea Mazzoleni 2026-09-24 22:19:35 +02:00
  • 5f68fda7ae Propagate non-capacity errors during parity split growth Andrea Mazzoleni 2026-09-24 21:04:13 +02:00
  • bcc06e10c6 Reject parity sizes exceeding data_off_t range and remove redundant block size casts Andrea Mazzoleni 2026-09-24 20:40:27 +02:00
  • 149b408c38 Skip disk cache statistics for mapping holes Andrea Mazzoleni 2026-09-24 19:46:21 +02:00
  • bcfd2734b6 Quiesce scrub read-ahead before autosave and distinguish read/write barriers Andrea Mazzoleni 2026-09-24 19:41:52 +02:00
  • fba3f74538 Handle MinGW path conversion failures with ENAMETOOLONG and EILSEQ instead of aborting Andrea Mazzoleni 2026-09-23 23:42:52 +02:00
  • a7fc44063c Auto update Andrea Mazzoleni 2026-09-23 17:14:15 +02:00
  • 222136f1e7 Leave block empty for unlocalized close errors and use zero for parity open errors Andrea Mazzoleni 2026-09-23 16:25:32 +02:00
  • 1a5b28ad38 Mark scrub/sync blocks bad when data file open fails with an I/O error Andrea Mazzoleni 2026-09-23 16:11:20 +02:00
  • e481b5f207 Query SMART attributes for all disks in spinup while restricting power operations to array members Andrea Mazzoleni 2026-09-23 06:56:15 +02:00
  • 5b615a0e02 Emit content_data and content_parity tags only after durable content rename in state_write Andrea Mazzoleni 2026-09-22 09:25:08 +02:00
  • 819b843163 Add timeout_sec parameter to os_command and os_script interface Andrea Mazzoleni 2026-09-22 08:15:21 +02:00