Changelog for
mergerfs-2.40.2-1.14.x86_64.rpm :
* Wed Mar 20 2024 Paolo Stivanin
- Update to 2.40.2:
* Add export-support option as a possible workaround for NFS EIO issue. Set to false.
* Add details to README regarding remote filesystems.
* Fix intermittent error of EIO when used with NFS.
* Special case O_TMPFILE in preload. Fixes incorrect permissions when used.
* Wed Jan 31 2024 Paolo Stivanin - Update to 2.39.0:
* Improvement: Rework how threadpools queue depth. There was a rare bug that affected 1 user that lead to the pool believing there were no queue slots open when there should have been.
* Improvement: Better compatibility with older versions of MUSL.
* Improvement: Print warnings to stderr and syslog if run as non-root indicating mergerfs may not work correctly.
* Improvement: Change how allow_other auto-setting works. Only set if running as root for those users who are on shared hosts with user_allow_other disabled and all activity is done as their user id. There may still be edge cases that fail but if it works for them I don\'t want to disallow it.
* Add flushonclose feature. Takes advantage of a newer FUSE feature which gives the server control over if a flush is issued at file close. Defaults to a less aggressive policy of only flushing when a file is opened for write.
* Changed flush-on-close to default to opened-for-write
* Fix user.mergerfs.pid queries
* Misc updates to docs
* Fix deadlock when exiting mergerfs
* readdir policies: func.readdir=X where X is seq, cor, or cosr.
* Add invalidation of gid cache via SIGUSR2 (which also triggers a full memory gc)
* 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.
* Change default read-thread-count from -1 to 0
* Remove duplicate entries in docs
* Add ability to log to syslog. Used only for certain new features at startup.
* New FUSE message processing mode. Allow for a separation between threads which are reading messages and those processing messages. See process-thread-count option.
* Added ability to pin threads to physical or logical cores automatically. Numerous algorithms provided. Makes it easier to limit mergerfs\' compute footprint while maintaining concurrency. See pin-threads option.
* Added ability to change mergerfs\' scheduling priority (default has been -10). See scheduling-priority option.
* Added ability for mergerfs on startup only to wait for all branches to become a filesystem other than the mountpoint\'s. This is not a full replacement for proper dependency management via systemd or similar systems but can help. See branches-mount-timeout option.
* Try to catch and forbid adding the target mountpoint as a branch.
* Added ability to set branch AND mergerfs readahead from within mergerfs at startup. Larger values may improve performance when using page caching in particular. See readahead option.
* Added ability to lazily unmount the target mountpoint when started. This helps in live upgrades of mergerfs or instances where mount -a is run. This will allow the underlying instance of mergerfs to exit once it is no longer in use while the new instance is running on top of it.
* Added new cache.files policy per-process. Used with cache.files.process-names it can define process comm names that will have page caching enabled when matched.
* Reject all btrfs ioctl calls made to mergerfs.
* Optimized FUSE message handling to reduce memory allocation. Same with some internal functions like read.
* Removed need to set use_ino, nonempty, or allow_other. They should have been always enabled for proper functionality and compatibility. Setting them is a noop.
* Removed all splice features. Over the years there has been little evidence the feature actually improved performance but did complicate the code quite a bit. The splice options are now noops.
* Sun Feb 07 2021 Antonio Larrosa - Initial release of mergerfs 2.33.3