mirror of
https://github.com/trapexit/mergerfs.git
synced 2024-11-26 02:09:52 +08:00
304 lines
7.5 KiB
Plaintext
304 lines
7.5 KiB
Plaintext
What is new in 2.9
|
|
|
|
- Add "zero copy" support for kernel 2.6.35 or newer
|
|
|
|
- Make maximum background requests tunable on kernel 2.6.32 or newer
|
|
|
|
- Require --no-canonicalize in (u)mount (util-linux version 2.18 or
|
|
newer) to fix security problems with fusermount
|
|
|
|
- Use dynamically sized hash tables in high level library
|
|
|
|
- Memory use of filesystem daemon can shrink more easily
|
|
|
|
- Add "auto_unmount" option
|
|
|
|
- Add "remember" option
|
|
|
|
- Add man pages for fusermount, mount.fuse and ulockmgr_server
|
|
|
|
- API changes:
|
|
|
|
o Introduce "store" and "retrieve" for accessing kernel buffers on
|
|
kernel 2.6.36 or newer
|
|
|
|
o Introduce abstract buffer for zero copy operations
|
|
|
|
o Allow path calculation to be omitted on certain operations
|
|
|
|
o Allow batching forget requests
|
|
|
|
o Add "flock" method
|
|
|
|
o Add support for ioctl on directories
|
|
|
|
o Add delete notification
|
|
|
|
o Add fallocate operation (linux kernel 3.5 or newer)
|
|
|
|
- Bug fixes and small improvements
|
|
|
|
============================================================================
|
|
|
|
What is new in 2.8
|
|
|
|
- More scalable directory tree locking
|
|
|
|
- Atomic open(O_TRUNC) support
|
|
|
|
- Support big write requests on kernels 2.6.26 and newer
|
|
|
|
- Out-of-tree fuse module removed
|
|
|
|
- Better NFS exporting support
|
|
|
|
- New ioctl and poll requests
|
|
|
|
- New CUSE (Character Device in Userspace) interface
|
|
|
|
- Allow umask processing in userspace
|
|
|
|
- Added cache invalidation notifications
|
|
|
|
- Bugfixes and small improvements
|
|
|
|
============================================================================
|
|
|
|
What is new in 2.7
|
|
|
|
- Stacking support for the high level API
|
|
|
|
- Add filename charset conversion module
|
|
|
|
- Improved mounting
|
|
|
|
============================================================================
|
|
|
|
What is new in 2.6
|
|
|
|
- Improved read characteristics (asynchronous reads)
|
|
|
|
- Support for aborting filesystem connection
|
|
|
|
- POSIX file locking support
|
|
|
|
- Request interruption support
|
|
|
|
- Building module for Linux kernels earlier than 2.6.9 not supported
|
|
|
|
- Allow block device based filesystems to support swap files
|
|
|
|
- Several bugs fixed, including a rare system hang on SMP
|
|
|
|
============================================================================
|
|
|
|
What is new in 2.5
|
|
|
|
- Merge library part of FreeBSD port
|
|
|
|
- New atomic create+open, access and ftruncate operations
|
|
|
|
- On filesystems implementing the new create+open operation, and
|
|
running on Linux kernels 2.6.15 or later, the 'cp' operation will
|
|
work correctly when copying read-only files.
|
|
|
|
- New option parsing interface added to the library
|
|
|
|
- Lots of minor improvements and fixes
|
|
|
|
============================================================================
|
|
|
|
What is new in 2.4
|
|
|
|
- Simplify device opening. Now '/dev/fuse' is a requirement
|
|
|
|
- Allow module auto-loading if user has access to '/dev/fuse'
|
|
|
|
- Allow mounting over a regular file for unprivileged users
|
|
|
|
- Allow mounting of arbitrary FUSE filesystems from /etc/fstab
|
|
|
|
- New mount options: 'umask=M', 'uid=N', 'gid=N'
|
|
|
|
- Check for non-empty mountpoint, and refuse mount by default. New
|
|
mount option: 'nonempty'
|
|
|
|
- Low level (inode based) API added
|
|
|
|
- Allow 'direct_io' and 'keep_cache' options to be set on a
|
|
case-by-case basis on open.
|
|
|
|
- Add 'attr_timeout' and 'entry_timeout' mount options to the
|
|
high-level library. Until now these timeouts were fixed at 1 sec.
|
|
|
|
- Some bugfixes
|
|
|
|
============================================================================
|
|
|
|
What is new in 2.3
|
|
|
|
- Add new directory related operations: opendir(), readdir(),
|
|
releasedir() and fsyncdir()
|
|
|
|
- Add init() and destroy() operations which are called before the
|
|
event loop is started and after it has exited
|
|
|
|
- Update kernel ABI so that on dual architectures (e.g. AMD64) 32bit
|
|
binaries work under a 64bit kernel
|
|
|
|
- Bugfixes
|
|
|
|
============================================================================
|
|
|
|
What is new in 2.2
|
|
|
|
Userspace changes:
|
|
|
|
- Add fuse_file_info structure to file operations, this allows the
|
|
filesystem to return a file handle in open() which is passed to
|
|
read(), write(), flush(), fsync() and release().
|
|
|
|
- Add source compatibility with 2.1 and 1.4 releases
|
|
|
|
- Binary compatibility with 2.1 release is retained
|
|
|
|
Kernel changes:
|
|
|
|
- Make requests interruptible. This prevents the filesystem to go
|
|
into an unbreakable deadlock with itself.
|
|
|
|
- Make readpages() synchronous. Asynchronous requests are deadlock
|
|
prone, since they cannot be interrupted (see above)
|
|
|
|
- Remove shared-writeable mapping support, which could deadlock the
|
|
machine
|
|
|
|
- Remove INVALIDATE userspace initiated request
|
|
|
|
- Update ABI to be independent of sizeof(long), so dual-size archs
|
|
don't cause problems
|
|
|
|
- Remove /sys/fs/fuse/version. Version checking is now done through
|
|
the fuse device
|
|
|
|
- Replace directory reading method on the kernel interface. Instead
|
|
of passing an open file descriptor to the kernel, send data through
|
|
the FUSE device, like all other operations.
|
|
|
|
============================================================================
|
|
|
|
What is new in 2.1
|
|
|
|
* Bug fixes
|
|
|
|
* Improved support for filesystems implementing a custom event-loop
|
|
|
|
* Add 'pkg-config' support
|
|
|
|
* Kernel module can be compiled separately
|
|
|
|
============================================================================
|
|
|
|
What is new in 1.9
|
|
|
|
* Lots of bugs fixed
|
|
|
|
* Minor modifications to the library API
|
|
|
|
* Improvements to the kernel/userspace interface
|
|
|
|
* Mounting by non-root made more secure
|
|
|
|
* Build shared library in addition to the static one
|
|
|
|
* Consolidated mount options
|
|
|
|
* Optimized reading under 2.6 kernels
|
|
|
|
* Direct I/O support
|
|
|
|
* Support file I/O on deleted files
|
|
|
|
* Extended attributes support
|
|
|
|
============================================================================
|
|
|
|
What is new in 1.3
|
|
|
|
* Thanks to user bugreports and stress testing with LTP and sfx-linux
|
|
a number of bugs were fixed, some quite serious.
|
|
|
|
* Fix compile problems with recent SuSE kernles
|
|
|
|
============================================================================
|
|
|
|
What is new in 1.2
|
|
|
|
* Fix mount problems on recent 2.6 kernels with SELinux enabled
|
|
|
|
* Fixed writing files lager than 2GBytes
|
|
|
|
* Other bugfixes
|
|
|
|
============================================================================
|
|
|
|
What is new in 1.1
|
|
|
|
* Support for the 2.6 kernels
|
|
|
|
* Support for exporting filesystem over NFS in 2.6 kernels
|
|
|
|
* Read efficiency improvements: read in 64k blocks instead of 4k
|
|
(Michael Grigoriev). Can be turned on with '-l' option of fusermount
|
|
|
|
* Lazy automatic unmount
|
|
|
|
* Added 'fsync()' VFS call to the FUSE interface
|
|
|
|
* Bugfixes
|
|
|
|
============================================================================
|
|
|
|
What is new in 1.0
|
|
|
|
* Cleanups and bugfixes
|
|
|
|
* Added 'release()' VFS call to the FUSE interface
|
|
|
|
* 64 bit file offsets (handling of > 4 GByte files)
|
|
|
|
* libfuse is now under LGPL
|
|
|
|
* New 'statfs' call (Mark Glines)
|
|
|
|
* Cleaned up mount procedure (mostly by Mark Glines)
|
|
|
|
NOTE: Binaries linked with with a previous version of libavfs may
|
|
not work with the new version of the fusermount program. In such
|
|
case recompile the program after installing the new libavfs library.
|
|
|
|
* Fix for problems under linux kernel 2.4.19
|
|
|
|
============================================================================
|
|
|
|
What is new in 0.95
|
|
|
|
* Optimized read/write operations. Raw throughput has increased to
|
|
about 60Mbyte/s on a Celeron/360
|
|
|
|
* Python bindings by Jeff Epler
|
|
|
|
* Perl bindings by Mark Glines
|
|
|
|
* Improved multithreaded operation
|
|
|
|
* Simplified library interface
|
|
|
|
* Bugfixes
|
|
|
|
============================================================================
|
|
|
|
What is new in 0.9:
|
|
|
|
* Everything
|