If you find mergerfs and/or my other work useful please consider supporting their development.
Features
- inodecalc: new argument that allows controlling how inodes are calculated. Can help with NFS stale file handle errors.
- nfsopenhack: new argument that helps working around issues with certain issues with NFS not being fully POSIX compatible when exporting mergerfs.
- new
msp
policies: "most shared path". Likeep
path preserving policies but will walk back the directory tree till something is found. - readdirplus: when a readdir happens mergerfs can
stat
files at the same time. Similar to the NFS feature. Might improve directory listing performance depending on use case. - config file: Allows you to put config arguments in a "ini" like file (key=val) and reference that in the mount options.
- new runtime API based on ioctl (will be removing the xattr based API in mergerfs 3.0)
- moveonenospc: now uses policies just like the regular filesystem functions providing more control over where the file goes.
Bug fixes
- Fix building on FreeBSD
- Reworked readdir code in general and fixed a NFS readdir race condition that is in libfuse
- inodecalc algo that makes mergerfs work better with some 32bit software that doesn't handle 64bit inode values
- inodecalc algo that helps with changing files out of band problems when exporting mergerfs through NFS.
- fixed deb package building that broken mounting as non-root
misc
- misc updates to docs
- general code cleanup
- prep for mergerfs v3.0 (which will be a breaking change with regard to options)
Changelog:
- 30d13b7 inodecalc: add 32bit versions of hashs
- 5989d41 readdir: use getdents64 for compatibility with ARM64
- 1d2a1ba README.md: move kernel bugs to wiki
- e639f3d README.md: update faq regarding Plex and page caching
- 173193d Update issue templates
- 0709b2e add missing options to usage
- 15a0aed cleanup: move some config data structures to separate files
- 8afe72d README: change back to listing fuse.mergerfs for fstab fstype
- a93bd9f freebsd: misc cleanups to get freebsd compiling
- 139e61e nfsopenhack: remove empty file check
- 93218a3 NFS open/creat hack
- 3ec137c policy: add "most shared path" policies
- 3a67384 Fix typos
- 468d420 Removed duplicated include
- 08d267f moveonenospc: enhance the feature to allow using a policy
- c4a85f5 readdir: add dirent index array
- c099064 remove unnecessary libfuse flags nopath, nullpath_ok, and utime_omit_ok
- 6289956 temporary fix for short readdirs on NFS
- d699a97 fix rpm spec and chmod in deb
- 8ed3a1f debian: fix installing of fresh deb
- b4397f7 add 'inodecalc' option to allow selection of inode calculation algo
- dbdd3e2 additional readdir refactor cleanup
- afb07b1 add Cirrus-CI
- 54c41c4 rework config management
- a0c1c1a Travis-CI: add installing of deb package
- add588f README: add terminology section and tweak some things
- eb78c51 README: update support section
- c6bce81 fix install location and setuid setting in deb pkgs
- aad2257 README.md: add human readable versions of some errno references
- eff15c7 README.md: request users update to latest version before they submit report
- 7c37a69 add basic setup section
- 698c414 fix getdent name length calculation
- 0888ee1 README: update a number of sections and fix typos
- 8ba1aba README: add note regarding space calculations
- 3a46ec9 fix filename hashing error
- 9b2634a fix name length calculation for musc
- 62873d2 use getdents64 on linux
- d119807 restructure readdir, add readdir_plus