Skip to content

Releases: trapexit/mergerfs

d9ab182
Compare
Choose a tag to compare

What's Changed

  • Return ENOENT when dotdot for root node requested by @trapexit in #1031

Support

If you like mergerfs please consider supporting the project: https://github.com/sponsors/trapexit

77e6f40
Compare
Choose a tag to compare

What's Changed

Full Changelog: 2.33.3...2.33.4

f159fe6
Compare
Choose a tag to compare

What's Changed

  • Call FUSE getattr rather than syscall for extra logic

Full Changelog: 2.33.2...2.33.3

34c684a
Compare
Choose a tag to compare

What's Changed

  • Get attrs for link, not target

Full Changelog: 2.33.1...2.33.2

518b4a6
Compare
Choose a tag to compare

Fixes a regression with file locks not being properly setup.

Commits:

  • ee8532c Ensure server handling of locks is disabled
c58da1a
Compare
Choose a tag to compare

Sorry for taking so long to get this version out. Been working on 3DO related projects and busy with work. I had hoped with COVID lockdowns I'd have spent more time working on mergerfs but the opposite occurred for a number of reasons. Regardless, now that this release is out, besides bug fixes, I intend to make the trek towards version 3.0 which will have major changes.

There was a lot of under-the-hood changes to sensitive code. I've stress tested it quite a bit but I'd not be surprised if I missed something. If anything seems odd please file a ticket or reach out directly. Enjoy.

Summary:

Improvements

  • Major cleanup of libfuse.
  • Reduced memory overhead of file metadata held in memory significantly.
  • Reduce memory fragmentation by reusing certain objects via mmap'ed memory pools.
  • Removed ioctl based runtime control. Wasn't used by anyone and will be completely changed in v3.

Bug Fixes

  • Fix bug in mfs policy when used in non-create situations (rare)
  • Fix bug in pfrd policy

Features

  • follow-symlinks: allows a number of modes where mergerfs will resolve symlinks rather than return them as symlinks.
  • rename-exdev, link-exdev: configurable ways to handle when rename or link return exdev. Instead of failing with EXDEV it can instead create a symlink to the file.

Changes

  • Removed most of the debug logging. The intent is to change how the logging is done eventually. I just didn't get around to it for this release. strace is typically more useful anyway. If you run with -d it will spit out INIT flag details though. It will also write certain memory details to /tmp/mergerfs.<pid>.info

Commits:

  • 68b3026 Remove embedded name in node struct
  • 18dead4 Add new debug printing routines
  • 68719da Remove ioctl runtime section, use getfattr instead of xattr
  • c384509 Remove subscribestar from sponsor platforms
  • 5f737cb Add option to log node memory usage metrics
  • 930dad3 Reduce struct node size
  • 8150957 Fix regression from remember_node refactor
  • c929781 Add malloc_trim configure test
  • 313aa2a Update ghc::filesystem and nonstd::optional
  • 4ea0de3 Rework dirents buffer management
  • 6b5c484 Major rework of memory allocation using fixed mem pools
  • f598d3b Add details on dropping caches before benchmarks
  • 122f9c1 Add new cirrus-ci targets
  • 5263a65 Remove usage printing regression in mount_bsd
  • 8def16a Fix infinite loop in mfs action policy
  • 43a6d66 Major cleanup of libfuse to remove unneeded features
  • df721eb Update docs with Chia wallet address
  • 54e8500 Add more clarity in what to provide when submitting bug reports or questions
  • 1aaf742 Update 'features' section of readme
  • b4c031d tweak bug report template language
  • 61c2187 Remove config ioctl calls
  • 7013ff9 Update nonstd::optional to v3.4.0
  • 3ce0dc5 Update ghc::filesystem to v1.5.8
  • 098f353 pfrd: fix mod by zero error when all branches are filtered
  • c06db9c pfrd: fix mod by zero error when all branches are filtered
  • 80f3099 properly initialize fuse_buf in worker loop
  • bcd5fde properly initialize fuse_buf in worker loop
  • c40f42e mention bind-propagation and add link to hotio
  • 44efbaa Update README.md
  • 9573a05 Update bug_report.md
  • 495afef README: update strace args and add question on snapraid
  • 58b4eb9 Fix typo
  • 9a90609 remove travis-ci
  • 8adebc9 new features: follow-symlinks, rename-exdev, link-exdev
  • ed0c1db fix parsing of relative branch paths
  • d337574 fix parsing of relative branch paths
  • 6a9f7e6 readme: update support section
  • 3bc189c README: update support section
  • dfb544f README: add warning/clearity about caching script and hardlinks and cow
  • 538467b config: rework global config, remove rwlock, make branches RCU like
  • 3808e26 Update FUNDING.yml
  • e9e17ba README: misc updates and tweaks
Compare
Choose a tag to compare

8e47bf4 pfrd: fix mod by zero error when all branches are filtered

Compare
Choose a tag to compare

Fix an uninitialized variable that could cause invalid behavior when reading from the FUSE device. Only likely to be hit if using splice_read option.

  • bcd5fde: properly initialize fuse_buf in worker loop
Compare
Choose a tag to compare
  • fix parsing of relative branch paths
Compare
Choose a tag to compare
  • reset dentry buffer when rewind'ed

Wasn't clearing dentry buffer when rewinding stream.

Sorry for missing packages. Something is up with some of the build images I use. Will update when fixed.