Andrea Mazzoleni
8a5b2adb75
Remove unused checked_read state flag
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-18 11:23:04 +02:00
Andrea Mazzoleni
a0d6bc288a
Fix touch abort before the first sync when no content file exists
2026-10-18 11:07:41 +02:00
Andrea Mazzoleni
25c86bc1e7
Remove leading double underscores from header include guards
2026-10-15 15:35:31 +02:00
Andrea Mazzoleni
a39fb132f8
Normalize comment style
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
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
0d2f466b11
Count unsynced blocks using an extent event sweep instead of per-block lookups
2026-10-05 15:41:01 +02:00
Andrea Mazzoleni
57e15416ae
Abort spindown when filesystem flush fails
2026-09-28 15:09:55 +02:00
Andrea Mazzoleni
13267085d1
Fail closed on invalid .snapraidignore control files
2026-09-25 09:44:09 +02:00
Andrea Mazzoleni
c6951393e8
Exit code and logging invariants for log_fatal and hardware log_error
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-21 17:27:07 +02:00
Andrea Mazzoleni
3f3e7d4483
Validate logical disk names in configuration parsing to ensure compatibility with snapraid-daemon
2026-09-18 10:00:41 +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
31710bc1f3
Distinguish system temperature sensor from thermal model ambient reference
2026-09-07 11:38:49 +02:00
Andrea Mazzoleni
305d1bce36
Use monotonic clock for thermal sampling intervals and model time axis
2026-09-07 00:04:49 +02:00
Andrea Mazzoleni
2fd94baa05
Make state_thermal() return 0 on success and -1 on failure
2026-09-06 23:03:31 +02:00
Andrea Mazzoleni
930f0dbbcb
Map devices before starting thermal
2026-09-04 08:08:40 +02:00
Andrea Mazzoleni
82be7b07b3
Persist reallocated mapping before parity resize in force-realloc sync
2026-08-31 10:39:17 +02:00
Andrea Mazzoleni
661e539f45
Defer pending snapshot promotion until parity sync
2026-08-18 23:33:57 +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
52f7c2184f
Add support for custom smartctl info options using a [info: ...] tag
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
87313c2bfd
Delete snapshot links in Windows
2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
76ce1cbb16
Add regression check for Btrfs
...
It requires root privileges as it has to create Btrfs filesystems.
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
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
447b1fd067
Fix overflow in the TERA/TEBI definition
2026-06-03 18:24:18 +02:00
Andrea Mazzoleni
23b4cc5fa0
Make the devices commands to fail if unsupported in the platform
2026-05-21 16:08:03 +02:00
Andrea Mazzoleni
4ba6ee874c
Log the modification time of the content file in probe and other commmands
2026-04-09 17:56:50 +02:00
Andrea Mazzoleni
0d0431a907
Simpler Copyright string
2026-04-09 17:56:49 +02:00
Christoph Hellwig
60269a1236
Use SPDX ( https://spdx.dev/ ) tags to identify the license used for each
...
file, and a COPYING file explaining the licensing scheme, with the actual
licenses listed in the LICENSES/ directory.
2026-04-02 16:01:37 +02:00
Andrea Mazzoleni
c153898c9a
Log devices mapping
Build / build-mac (push) Waiting to run
Build / build-linux (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-03-16 12:43:23 +01:00
Andrea Mazzoleni
189029749e
Configuration is now required also for smart and probe commands
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-03-12 16:19:40 +01:00
Andrea Mazzoleni
60c7b6baa3
New extra config option for additional disks to monitor
2026-03-11 16:05:39 +01:00
Andrea Mazzoleni
e48cdacce5
New option --gui-touch-before
2026-03-10 23:43:21 +01:00
Andrea Mazzoleni
627b7cff50
New gui options to have a better integration
2026-02-10 12:16:50 +01:00
Ralf
966583e6f0
Add a new -W, --force-realloc-tail that operates only on the specified tail
...
Co-authored-by: Andrea Mazzoleni <amadvance@gmail.com>
2026-02-09 14:39:19 +01:00
Andrea Mazzoleni
d5b5a9bcbf
More efficient info bucket management
...
Logged at every state_read() and state_write()
2026-02-09 14:39:19 +01:00
Andrea Mazzoleni
d3c5521d21
Log the new temperature attribute for all devices
2026-02-09 14:39:19 +01:00
Andrea Mazzoleni
025816d151
Speed up the status command
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-02-02 18:00:14 +01:00
Andrea Mazzoleni
60bd71d184
Log new block_unsynced and block_unscrubbed counter
2026-02-02 18:00:14 +01:00
Ralf
c09bdc572e
Add new locate command with --tail option.
...
Co-authored-by: Andrea Mazzoleni <amadvance@gmail.com>
2026-02-02 14:02:16 +01:00
Andrea Mazzoleni
6b79b3157d
Splitted the --gui option in --gui and --gui-verbose to avoid extremely big logs
2026-01-14 10:49:23 +01:00
Andrea Mazzoleni
36cef9ee89
New .snapraidignore feature
2026-01-11 12:07:01 +01:00
Andrea Mazzoleni
e00342557e
Exit with an error code if Ctrl+C is pressed
2025-10-17 10:07:51 +02:00
Andrea Mazzoleni
52ef48655f
Improve and change the order of the user messages
...
The "Everything is OK" is now printed as latest one.
2025-10-13 13:51:18 +02:00
Andrea Mazzoleni
467fb8c1ac
Don't print the "Nothing to do" if the state was updated
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-win (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
2025-10-13 00:26:31 +02:00
Andrea Mazzoleni
906d215bf5
Add thermal protection options: temp_limit and temp_sleep
...
Build / build-mac (push) Has been cancelled
Build / build-linux (push) Has been cancelled
Build / build-win (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
Introduce two new configuration directives to protect disks from overheating:
- temp_limit <TEMPERATURE_CELSIUS>
Sets the maximum allowed disk temperature. When any disk exceeds this limit,
SnapRAID stops all operations and spins down the disks.
- temp_sleep <TIME_IN_MINUTES>
Specifies how long disks remain in standby after a temperature event.
Defaults to 15 minutes.
These options allow SnapRAID to automatically pause activity and cool down
disks when a temperature threshold is reached, improving data safety and
hardware longevity.
2025-09-27 16:05:05 +02:00
Andrea Mazzoleni
8cef686d26
Adds a new smartignore option to ignore specific SMART attributes
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-win (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
2025-09-15 16:57:22 +02:00
Allan Clark
5886923bb1
Add bandwidth limit feature --bw-limit
2025-03-29 19:29:55 +01:00
Andrea Mazzoleni
1d4fbd3f9a
Add the option --test-skip-multi-scan to skip multithreads scan
2022-01-07 21:03:51 +01:00