Andrea Mazzoleni
44bce00aef
Fail Btrfs device listing if an unexpeced error happens
2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
818bb61e3b
Fix file descriptor leak in os_spawn by enabling O_CLOEXEC for compiled binaries
2026-08-18 23:33:54 +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
d6d1d6d3cd
Skip spinup and spindown for non-rotational devices
2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
d7c6a27c6d
Refactor portable support
2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
34103b65ec
Allow tools to be symlinks and hardlinks
2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
bb401e2e3f
Rename randomize to os_randomize
2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
255a54a10a
More CPU info
2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
2db72e0e7e
Add CRC support for macOS
2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
b94f7a952c
In the speed test, set the CPU affinity to the expected best core
2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
fd2dc7810f
Run the speed test with and without displacement
2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
2dbb25acbd
Allow to specify the wrap size in allocation
2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
22495abe9e
Add AArch64 NEON parity generation and recovery functions
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
bbd3c23cd2
Migrate block_off_t to 64-bit with updated CLI parsing, VLQ serialization, and format specifiers
2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
76998613da
Remove the unused number of data disks from the vector allocation
...
The same addressing rules are applied to the parity disks because
they are used as data disks during recovery operations.
2026-08-18 23:33:54 +02:00
Andrea Mazzoleni
5795b9706e
Use the optimal displacement depending on the number of disks
2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
108915254e
Assume the assembler supports all x86 SSE/AVX instructions
2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
c08a571d88
Add support for AVX2 GFNI
2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
557dcda9cd
Disable AVX512 on CPUs with narrow shuffle ports or double-pumped 256-bit datapath
2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
58fece3584
Extend io_init() to support arbitrary combinations of data and parity operations
2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
185df4bd2e
Do not expose Windows threads keys
2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
2c6b7badb7
Validate GUIDs before passing them to PowerShell
2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
6a4d2dfd6d
Take into account that btrfs devices can be not contiguous
2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
493e0118f3
Portability
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
639167efba
Preliminary support for AVX512GFNI
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
ab72f1cfc8
Add Windows VirtualShadowCopy support for snapshots
2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
38f78154f9
Add Windows support for symlink of directories
2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
c5b3fdc615
In Windows readlink now convert \ to / to match symlink behaviour
2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
8bb22f2f7c
Always use PATH_MAX instead of MAX_PATH (limited to 260)
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
4a37e3fece
Change the BLOCK_HASH_SIZE type to avoid potential overflow
2026-08-18 23:33:53 +02:00
Andrea Mazzoleni
d9c5e0c9b2
Target Windows 7 instead of Windows Vista
2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
e82755197f
Modernize configure.ac
2026-08-18 23:33:52 +02:00
Andrea Mazzoleni
c724b47189
More coverage support
2026-08-18 23:33:52 +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
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
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
54602422dd
Change commenting style
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
03a8927571
Add detection of AVX2GFNI
2026-08-18 23:33:52 +02:00