github trapexit/mergerfs 2.42.0
mergerfs v2.42.0

6 hours ago

mergerfs v2.42.0

Donations / Sponsorship

If you find mergerfs useful please consider supporting its ongoing development.

https://github.com/trapexit/support

New features

  • lup (least used percentage) policy: selects the branch with the lowest used space percentage.
  • mount.mergerfs now includes the -n flag to support mounting without updating /etc/mtab.

Improvements

  • Better lock management and behavior with open files. Reduction of contention.
  • Custom filename dedup strategy improving directory reading performance
  • Pre-calculate part of the file inode within readdir significantly reducing cost of overall calculation.
  • Replace sched_yield with nanosleep for improved scheduling of contention situations.
  • improved stat auto cache fingerprinting to reduce stale reads.

Behavior changes

  • credential handling reworked to be compatible with chroot and idmap. removed ability to disable default_permissions option as a result as mergerfs now requires the kernel to manage entitlements.
  • broken mounts with ENOTCONN (common due to crashed FUSE instances) are automatically unmounted if possible on start instead of hard erroring. (mostly useful while developing).
  • fusermount3 will be used if available and other options missing.
  • remember-nodes option is deprecated and the feature removed. There is now only never-forget-nodes behavior. Any non-zero value in remember-nodes will enable never-forget-nodes. It was removed because time based really didn't save much memory and complicated the code. Doing this also reduced the size of each node helping offset increased node count.

Bug fixes

  • fix race condition between runtime changing of branches and certain requests.
  • rmdir no longer returns success if any rmdir call returns ENOTEMPTY.
  • Invalid policy names are properly rejected.
  • statfs calculation could theoretically have overflowed with impossibly large branch values.
  • Fixed readlink buffer size management. The size does not include a nul terminating value.
  • Minor calculation bugs in copy_file_range and futimens.
  • moveonenospc no longer crashes when all destination branches are rejected. Returns ENOSPC.
  • Better / more proper error calculations in a number of functions.
  • rare ioctl call crash fixed

Hardening

  • many "the kernel should never do this bug just in case" enhancements

Full Changelog

2.41.1...2.42.0-rc2

Don't miss a new mergerfs release

NewReleases is sending notifications on new releases.