Change Summary
- Allow user to define depth of process thread message queues. Previously these were unbounded and "FORGET" message floods would bloat memory.
- O_DIRECT now supported, mostly. If software attempt to change the O_DIRECT flag on the fly using fcntl(F_SETFL) it won't work as that is not supported by FUSE.
- Fix bug in
moveonenospc
file moves when the file was opened in append mode. - When a create function fails with EROFS (which really only happens when an ext4 filesystem errors) the relevant branch will be marked as mode = RO and the call tried again.
- Add ability to trigger memory cleanup via custom ioctl calls or signal SIGUSR2.
- Add ability to trigger invalidation of all nodes to flush memory using custom ioctl or signal SIGUSR1.
Changelog
- Fix crash when exiting with open deleted files by @trapexit in #1170
- Make srcmounts readonly by @trapexit in #1171
- Fix move when in append mode + fix read/write direct_io vs cached behavior by @trapexit in #1203
- Add manual GC triggering + configurable process queue depth by @trapexit in #1204
- Fix error handling for cached writes by @trapexit in #1206
- Fix build on older distros due to std::atomic definitions by @trapexit in #1207
- Simplify syslog wrapper a bit by @trapexit in #1208
- Align msg buffer memory to allow O_DIRECT to work by @trapexit in #1209
- Create functions can set branches RO on EROFS by @trapexit in #1212
Documentation
https://github.com/trapexit/mergerfs/blob/2.36.0/README.md
Donations / Sponsorship
If you find mergerfs useful please consider supporting its ongoing development.