Mergerfs Versions Save

a featureful union filesystem

2.32.4

3 years ago
  • fix parsing of relative branch paths

2.32.3

3 years ago
  • 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.

2.32.2

3 years ago
  • f50812a dirname should not return an empty string
  • 5e08357 update cirrus-ci builds
  • 44a9891 msp policies stopped before root path

2.32.1

3 years ago

Fixes a possible segv. After some restructuring certain data structures weren't properly initialized. Might fix #849.

  • 3900543 fix segv: zero out data structures

2.32.0

3 years ago

Mostly a bug fix but some slight refactoring was done too.

  • 7edd3c6 config: fix invalid error check when parsing config file
  • 1b26f49 general cleanup, slight memory reduction
  • c3fffef msp policies: used wrong path to check existence
  • 7e583e3 use relative option for rsync

2.31.0

3 years ago

Summary:

  • Lots of cleanup
  • new policies: prfd, eppfrd, msppfrd
  • per branch minfreespace
  • replace fasthash with wyhash for inode calculation and other hashing. fasthash had issues on some platforms.
  • better error handling for certain functions

Full changelog:

  • 8990e24 README.md: add details on per branch minfreespace
  • f6e37c5 README.md: add details about error handling
  • 0484442 wyhash: use safety mode 1
  • 5a31843 rework some function error handling
  • 610c75f properly return const ref from tofrom string wrapper
  • 73e8ed7 Delete issue_template.md
  • 0b1af2b Update bug_report.md
  • 767039c option_parser: return 0 when requesting help or version
  • fc34539 branches: add per branch minfreespace w/ original value as default
  • 27bd39f README.md: fix typos
  • 6311df7 optionally use lchmod depending on if on Linux or not (BSD)
  • 15fb751 README.md: add note indicating only tagged releases are supported
  • 0468440 add {,ep,msp}pfrd policies
  • 8675fce add fedora builds to cirrus-ci
  • 7fd629e add #warning to make it more obvious what versions of functions are used
  • 2fe20b8 clean up and separate out fs_* files
  • 2696079 break fs.hpp up into separate files
  • ec15872 cleanup function signatures and definitions
  • 6cc6524 change category to enum class
  • 7e17310 libfuse cleanup: add more header include guards
  • f488deb libfuse/Makefile: support CXXFLAGS and LDFLAGS passed via environment
  • 678626e Makefile: support CXXFLAGS and LDFLAGS passed via environment
  • 0bc6711 libfuse/Makefile: support $AR
  • a925fbe libfuse cleanup: extern cplusplus cleanup
  • dc1b698 libfuse cleanup: remove single threaded
  • 3c761b7 libfuse cleanup: remove libfuse API compatibility
  • 3bfdd78 libfuse cleanup: remove cuse
  • 5f12fb6 libfuse cleanup: remove unnecessary files
  • f9b831e libfuse cleanup: reindent
  • badf7e1 README.md: add XMR address
  • 3b38262 README.md: update support section with Open Collective and LBC
  • 0371b04 change from fasthash64 to wyhash
  • 1fe32e9 fix: add fakeroot needed for building

2.30.0

3 years ago

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". Like ep 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

2.29.0

4 years ago

https://github.com/trapexit/mergerfs#writeback-caching https://github.com/trapexit/mergerfs#how-are-inodes-calculated

  • 5ce428c rework makefiles + install mount tools
  • a646fe0 change inode conversion algo to reduce collision
  • 576ff36 add cache.writeback to xattrs
  • bf4b390 update fuse_kernel.h
  • 4b9f3de add ctime support
  • 903d39f add writeback caching
  • 9952c58 add links to ZFS comparison
  • 66f0d9e add faq entry on files ending up on 1 branch
  • 0f2f78c python 2.6 fix
  • 489ab23 make git2debcl work on Python 2 & 3
  • 3897852 add README segment on benchmarking
  • f4b8efc more FAQs
  • 4625a3c fix typos and update FAQ regarding policy preference
  • 322fa57 update docs: openvz kernel bug and new support links
  • 5eb3c8c add github sponsor and subscribestar to funding
  • 5d82756 Create FUNDING.yml

If you like mergerfs consider supporting the project: https://github.com/trapexit/mergerfs#support-development

2.28.3

4 years ago
  • 4d82ed9 fix short writes on >2GB files when cloning file
  • 08e1bef improve nodeid generation
  • 58ab7f7 Fix typo
  • 7a84555 update travis config to include bionic

2.28.2

4 years ago
  • 0fffabf only return 1 branch for rand/eprand policies
  • 50ad648 initialize mutex to fix lockup
  • 752a159 add UPGRADE section
  • f77d1d9 Force symlink creation (don't error if it already exists)
  • e6a6ab9 update how it works
  • 38919ad Update README.md
  • 86bda61 fix some grammar and typos
  • 4c4c27a set uid & gid when calling ioctl