mergerfs-2.25.0
Pre-release
Pre-release
This is a major feature release. As such its marked as pre-release. Most of the new features shouldn't impact regular usage but with the branch tagging feature the policies were restructured and fallbacks removed which could result in slightly different behavior in some cases. Best to put this version through explicit paces rather than a blind upgrade just in case.
Major changes include:
- More efficient file copying / cloning via FICLONE and/or copy_file_range usage (when moveonenospc and link_cow)
- Ability to tag individual branches as read write, read only, or no create. read only will work like mounting read only (which still is checked). no create will allow changes and deletes but not creations. syntax is like that of unionfs.
- link_cow feature will cause files with a link count > 1 to be copied and renamed in place to "break" that link when the file is opened for write. Similar to
cow-shell
and useful when managing hardlink deduped data and backups. - Ability to disable xattr support at runtime rather than compile time. extended attributes are rarely used and their use can greatly increase the cost of certain operations.
- Ability to short circuit xattr security_capability calls. This call in particular tends to greatly reduce throughput in certain workloads. This allows targeted short circuiting within mergerfs allowing all other xattr calls through.
- Ability to change the behavior of statfs. Allows ignoring of available space found on read only or no create tagged branches.
- remove fallback behavior from policies. Results in unexpected behaviors due to silently running incompatible policies.
git commits:
- c46134c fix building on platforms without O_PATH
- 3631ab7 optimize readdir file dedup
- 680f819 add ability to change statfs behavior
- 7524e57 rename NW (no write) to NC (no create)
- b55ebba add tagging branches RW/RO/NW
- 8eacb00 misc updates to docs
- 9e0ab1f misc cleanups
- 8a48b74 policy return cleanup
- 85026d5 add FICLONE and copy_file_range to clonefile
- 1885a82 remove libattr dependency
- 65f482e add ability to turn on/off xattr support at runtime
- 8d1a156 fix building on certain platforms
- 93f7d7d add link_cow feature
- 9afefef keep literal when glob fails
- 340f3c8 add fuse to debian pkg dependency
- f856336 add security_capability option
- 057eafe add comment regarding tar error
- 587ab62 tweak docs, add FAQ regarding vendoring of libfuse
- 756d4ff Makefile: option for building with system libfuse
- ec6adaa options: move "-o threads=" help text to libfuse/
- fc52f89 add FAQ entry on hard links
- e987ff4 Makefile: don't touch LDFLAGS
- 39d5ab8 add details regarding use_ino
- c005463 change examples to use /mnt rather than /tmp