Commit graph

163 commits

Author SHA1 Message Date
Andrea Mazzoleni
6a4d2dfd6d Take into account that btrfs devices can be not contiguous 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
0df28e936f Secure the popen use 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
87313c2bfd Delete snapshot links in Windows 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
2c92381686 Report issues in github 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
99530c9946 Automatically exclude the snapshot .snapraid directory and content files 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
6bebf4dd09 Allow to configure path of external tools 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
5c1cf8560a Secure external tools execution 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
60316a5eda Sanitize shell execution 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
033ce93d5b Add ZFS support 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
ec9ddb474a Rework snapshot interface 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
16b08201a4 Add Bcachefs support 2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
c724b47189 More coverage support 2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
2e71602267 Remove the requirement to snapshot content files
The new content file format now includes metadata for previous versions
of files. This allows the fix command to access historical file data from
snapshots as needed, ensuring recovery even if the live filesystem has
changed or the file was deleted during a sync.
2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
54602422dd Change commenting style 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
fcf85b4b7c New Btrfs support using IOCTLs to get UUID and low level devices 2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
96e20b3912 Switch esc_tag and path formatting to a contiguous thread-local circular pool to eliminate stack bloat
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 Advanced / Analyze (c-cpp) (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
2026-05-29 11:22:04 +02:00
Andrea Mazzoleni
81995ccc8d Use eaccess() instead of access() 2026-05-21 16:08:03 +02:00
Andrea Mazzoleni
88a6dd1e81 Cast to unsigned char when using ctype macros 2026-05-21 00:16:26 +02:00
Andrea Mazzoleni
6bfbc6e3b2 Fix potential division by zero with minuscule devices 2026-05-20 19:22:50 +02:00
Andrea Mazzoleni
3d2c5464c3 Avoid modification in place of the readdir()-> d_name field 2026-05-18 09:55:16 +02:00
Andrea Mazzoleni
6fe5353533 Fix output of sysattr_vpd_pg83 2026-05-18 09:55:16 +02:00
Andrea Mazzoleni
19d212444c Fix leaks in Linux 2026-05-18 09:55:16 +02:00
Andrea Mazzoleni
775d68aff7 Fix the tag for symbolic links in the messages
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 Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
2026-04-09 17:56:50 +02:00
Andrea Mazzoleni
35b5c46851 Handle the case of posix_fadvise() returning ENOENT 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
ef3572ea73 Make smartctl to ignore locale
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 Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
2026-03-19 16:09:57 +01:00
Andrea Mazzoleni
c153898c9a Log devices mapping
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 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
fa13703a7f Avoid a coverity warning
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 Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
2026-03-15 15:44:13 +01:00
Andrea Mazzoleni
df29e95cef Fix leak 2026-03-15 15:38:52 +01:00
Andrea Mazzoleni
60c7b6baa3 New extra config option for additional disks to monitor 2026-03-11 16:05:39 +01:00
Andrea Mazzoleni
4bc30e976a Gather access counters in Windows 2026-03-04 11:06:19 +01:00
Andrea Mazzoleni
75ef786e29 Report stats also for low devices
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 Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
2026-03-03 12:41:16 +01:00
Andrea Mazzoleni
b3879f7f8e Rework the portable support 2026-03-02 09:56:27 +01:00
Andrea Mazzoleni
748c086edb Normalize the sysattr() interface 2026-02-28 10:10:27 +01:00
Andrea Mazzoleni
ba18fdaf07 Avoid to use gcc extensions when allocating the fiemap
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 Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
2026-02-28 09:37:40 +01:00
Andrea Mazzoleni
d451f911c7 Reformat the code with new uncrustify.cfg 2026-02-27 00:39:22 +01:00
Andrea Mazzoleni
1e79a19409 Fix potential crash during thermal spingdown 2026-02-25 19:04:45 +01:00
Andrea Mazzoleni
696ee97754 Log full SMART attributes 2026-02-17 02:02:48 +01:00
Andrea Mazzoleni
2019aa4bb6 Log the normalized, worst and threshold value of SMART attributes 2026-02-17 02:02:48 +01:00
Andrea Mazzoleni
4da11411f1 Always get the SMART info after a spinup 2026-02-02 18:00:14 +01:00
Andrea Mazzoleni
d3f7bf64c1 Differentiate messages in the log files if they are caused by an hardware issue 2026-02-01 20:44:36 +01:00
Andrea Mazzoleni
9f081f9c22 Log the filesystem type and label
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 Advanced / Analyze (c-cpp) (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
2026-01-29 19:34:33 +01:00
Andrea Mazzoleni
5a5668851d Log the interface of the device
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 Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
2026-01-29 17:06:10 +01:00
Andrea Mazzoleni
3e62e22411 Beautification with unscrustify 2026-01-26 09:42:03 +01:00
Andrea Mazzoleni
f64d582960 Fixed a crash on macOS when filesystem doesn't report UUID
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 Advanced / Analyze (c-cpp) (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
2026-01-22 16:13:25 +01:00
Andrea Mazzoleni
ad2a36f2c7 Check dirfd result before using it 2026-01-22 16:13:25 +01:00
Andrea Mazzoleni
a7cae2707f Always trim family/serial/model 2026-01-22 16:13:25 +01:00
Andrea Mazzoleni
be3e3673fd Use proper family variable name instead of vendor 2026-01-11 12:01:12 +01:00