Commit graph

97 commits

Author SHA1 Message Date
Andrea Mazzoleni
d452b109bc More regression tests
Some checks are pending
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-28 12:15:50 +01:00
Andrea Mazzoleni
21acc31bf1 Beautify code with uncrustify 2025-10-26 18:11:45 +01:00
Andrea Mazzoleni
ac986579d7 During cooldown keep spinning down any disk that is spun up 2025-10-26 12:03:31 +01:00
Andrea Mazzoleni
a2dd9a5f1c Fix leak on error in the new devup 2025-10-08 00:17:01 +02:00
Andrea Mazzoleni
47c0f3b8ae Before spinning down flush all the disk caches 2025-09-27 19:40:32 +02:00
Andrea Mazzoleni
906d215bf5 Add thermal protection options: temp_limit and temp_sleep
Some checks failed
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
fedeb99bdc Add a new probe command
Probe the power state of the disks in the system
2025-09-24 11:26:30 +02:00
Andrea Mazzoleni
e57f07cc24 Use direct read access to spinup disks
This is more reliable in case of multiple physical devices mapped to the same
logical disk.
2025-09-24 11:15:26 +02:00
Andrea Mazzoleni
8cef686d26 Adds a new smartignore option to ignore specific SMART attributes
Some checks are pending
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
Nasado
3c87474aa2 Use volume UUIDs on macOS 2025-02-13 11:21:26 +01:00
Andrea Gelmini
2dacb15516 Fix typos
Signed-off-by: Andrea Gelmini <andrea.gelmini@gelma.net>
2022-07-21 14:48:48 +02:00
Andrea Mazzoleni
53801b407a Remove the need of the MingW pthread layer on the Windows port
Now everything is implemented usign Windows native calls.
2021-05-26 00:21:52 +02:00
Andrea Gelmini
986e9b4131 Fix typos 2020-05-26 12:50:15 +02:00
Andrea Mazzoleni
70f2460130 Fix some warnings with latest gcc 8.2.0 2018-09-26 06:50:43 +02:00
Valentin Hilbig
3f838753ca Fix scanning of devices with multiple slaves 2018-01-04 20:08:27 +01:00
Andrea Mazzoleni
976338f84c Use a more explicit check on readlink result
This should help the static analyzer to understand the code.
2017-12-12 00:01:25 +01:00
Andrea Mazzoleni
f65961d1ec Be more explicit about blkid support 2017-12-10 20:12:24 +01:00
Andrea Mazzoleni
c5ed7ae23f Fix a typo in log files 2017-12-10 20:11:06 +01:00
Andrea Mazzoleni
f778fb691f Apply new hardlink behaviour also to NTFS in nix platforms
This is a specific NTFS behaviour, not limited to Windows.
2017-10-29 18:43:53 +01:00
Andrea Mazzoleni
905aaa399b Print more information when failing to dereference a null device 2017-03-26 19:22:58 +02:00
Andrea Mazzoleni
5c5f44e2a0 Remove build warnings in Mac OS X 2016-11-06 16:29:19 +01:00
Andrea Mazzoleni
6f16cddd5b Rename string functions to avoid variable shadow 2016-11-06 16:06:26 +01:00
Andrea Mazzoleni
72c558b104 Remove the unnecessary /dev/block support 2016-10-23 21:18:27 +02:00
Andrea Mazzoleni
4428a073da Remove dependency to /dev/block
We can read the same info directly from /sys/dev/block.
2016-10-23 21:16:58 +02:00
Andrea Mazzoleni
245879f726 When scanning for other devices, skip the ones not readable
This allow to work in some distributions with extraneous
devices that cannot be resolved.
One case is for Puppy with 8:0 not present in /dev/block.
2016-10-19 23:11:07 +02:00
Andrea Mazzoleni
a90f8db3c0 Ingnore the SMART Command Timeout for Seagate SMR disks 2016-10-13 18:57:14 +02:00
Andrea Mazzoleni
b5e5a0791b Fix a typo in a comment 2016-09-06 21:11:15 +02:00
Andrea Mazzoleni
20cd1f86f8 Fix typos in comments
No functional change.
2016-05-23 22:37:18 +02:00
Andrea Mazzoleni
21241c5078 Preliminary advise support 2016-05-15 14:50:59 +02:00
Andrea Mazzoleni
1ce7b61f29 Convert null devices as first operation
This ensure that all the usages are with the
real device number.
Also avoid to resolve device in spinup to suppor
filesystem that cannot be resolved, like ZFS.
2016-04-29 20:53:01 +02:00
Andrea Mazzoleni
a0307ca29d Detect device also from the major:minor of the mount point
This is required for btrfs in new distributions, because
the major:minor reported in /proc/self/mountinfo doesn't
match the one of the mount point.
2016-04-28 22:27:57 +02:00
Andrea Mazzoleni
6053096862 Extend the split function to support multiple delimiters 2016-04-26 21:26:15 +02:00
Andrea Mazzoleni
4cc1109444 Add support for null device numbers
They are resolved using the mountinfo interface and
mapping them to the block device listed there.
2016-04-23 16:24:26 +02:00
Andrea Mazzoleni
cca81e7ff6 Fix some typos in comments 2016-04-20 22:12:16 +02:00
Andrea Mazzoleni
36a4d24333 Source code beautification
Done with uncrustify.
2016-04-10 22:46:09 +02:00
Andrea Mazzoleni
ecff017ffe Log more information during UUID detection 2016-03-01 23:29:46 +01:00
Andrea Mazzoleni
0707b1f446 Error check all the thread operations
No error is expected, and this enforces that expectation.
2016-02-13 16:05:19 +01:00
Andrea Mazzoleni
104f8b065e Be more explicit if smart/down is not supported 2016-02-06 10:24:29 +01:00
Andrea Mazzoleni
6da3469fe7 When clearing the screen move the cursor to the top 2016-01-30 09:17:10 +01:00
Andrea Mazzoleni
11a8e301f4 Clear the screen before printing stats 2016-01-27 22:24:59 +01:00
Andrea Mazzoleni
adbf4f25c2 Allow 'smart' without a configuration file 2016-01-18 22:36:06 +01:00
Andrea Mazzoleni
984ea5a329 Log info about the filesystem used 2016-01-09 17:19:43 +01:00
Andrea Mazzoleni
84f7a623ab Be more verbose in log and messages about UUID 2016-01-05 23:35:55 +01:00
Andrea Mazzoleni
cc8ca88ecf Add some more coverage exclusions 2016-01-05 12:23:05 +01:00
Andrea Mazzoleni
c879140663 Print the exit status of addr2line 2016-01-05 11:16:03 +01:00
Andrea Mazzoleni
fe20160958 Fix the precision field in the addr2line call
It must be a int type in x64.
2016-01-05 11:04:04 +01:00
Andrea Mazzoleni
5249f9cb04 Fix various typos in comments 2016-01-02 16:52:20 +01:00
Andrea Mazzoleni
b853b4c406 More explicative StackTrace message 2016-01-02 12:23:48 +01:00
Andrea Mazzoleni
7ad70c26f8 Remove the need of helgrind/drd suppression
Using a mutex for protectign the global memory counter
should not affect performance.
2016-01-01 17:57:04 +01:00
Andrea Mazzoleni
584c362ba4 Handle correctly files without offset
This avoid the warnings about duplicate offsets.
2015-12-20 17:19:57 +01:00