3 - Add "zero copy" support for kernel 2.6.35 or newer
5 - Make maximum background requests tunable on kernel 2.6.32 or newer
7 - Require --no-canonicalize in (u)mount (util-linux version 2.18 or
8 newer) to fix security problems with fusermount
10 - Use dynamically sized hash tables in high level library
12 - Memory use of filesystem daemon can shrink more easily
14 - Add "auto_unmount" option
18 o Introduce "store" and "retrieve" for accessing kernel buffers on
19 kernel 2.6.36 or newer
21 o Introduce abstract buffer for zero copy operations
23 o Allow path calculation to be omitted on certain operations
25 o Allow batching forget requests
27 - Bug fixes and small improvements
29 ============================================================================
33 - More scalable directory tree locking
35 - Atomic open(O_TRUNC) support
37 - Support big write requests on kernels 2.6.26 and newer
39 - Out-of-tree fuse module removed
41 - Better NFS exporting support
43 - New ioctl and poll requests
45 - New CUSE (Character Device in Userspace) interface
47 - Allow umask processing in userspace
49 - Added cache invalidation notifications
51 - Bugfixes and small improvements
53 ============================================================================
57 - Stacking support for the high level API
59 - Add filename charset conversion module
63 ============================================================================
67 - Improved read characteristics (asynchronous reads)
69 - Support for aborting filesystem connection
71 - POSIX file locking support
73 - Request interruption support
75 - Building module for Linux kernels earlier than 2.6.9 not supported
77 - Allow block device based filesystems to support swap files
79 - Several bugs fixed, including a rare system hang on SMP
81 ============================================================================
85 - Merge library part of FreeBSD port
87 - New atomic create+open, access and ftruncate operations
89 - On filesystems implementing the new create+open operation, and
90 running on Linux kernels 2.6.15 or later, the 'cp' operation will
91 work correctly when copying read-only files.
93 - New option parsing interface added to the library
95 - Lots of minor improvements and fixes
97 ============================================================================
101 - Simplify device opening. Now '/dev/fuse' is a requirement
103 - Allow module auto-loading if user has access to '/dev/fuse'
105 - Allow mounting over a regular file for unprivileged users
107 - Allow mounting of arbitrary FUSE filesystems from /etc/fstab
109 - New mount options: 'umask=M', 'uid=N', 'gid=N'
111 - Check for non-empty mountpoint, and refuse mount by default. New
112 mount option: 'nonempty'
114 - Low level (inode based) API added
116 - Allow 'direct_io' and 'keep_cache' options to be set on a
117 case-by-case basis on open.
119 - Add 'attr_timeout' and 'entry_timeout' mount options to the
120 high-level library. Until now these timeouts were fixed at 1 sec.
124 ============================================================================
128 - Add new directory related operations: opendir(), readdir(),
129 releasedir() and fsyncdir()
131 - Add init() and destroy() operations which are called before the
132 event loop is started and after it has exited
134 - Update kernel ABI so that on dual architectures (e.g. AMD64) 32bit
135 binaries work under a 64bit kernel
139 ============================================================================
145 - Add fuse_file_info structure to file operations, this allows the
146 filesystem to return a file handle in open() which is passed to
147 read(), write(), flush(), fsync() and release().
149 - Add source compatibility with 2.1 and 1.4 releases
151 - Binary compatibility with 2.1 release is retained
155 - Make requests interruptible. This prevents the filesystem to go
156 into an unbreakable deadlock with itself.
158 - Make readpages() synchronous. Asynchronous requests are deadlock
159 prone, since they cannot be interrupted (see above)
161 - Remove shared-writeable mapping support, which could deadlock the
164 - Remove INVALIDATE userspace initiated request
166 - Update ABI to be independent of sizeof(long), so dual-size archs
169 - Remove /sys/fs/fuse/version. Version checking is now done through
172 - Replace directory reading method on the kernel interface. Instead
173 of passing an open file descriptor to the kernel, send data through
174 the FUSE device, like all other operations.
176 ============================================================================
182 * Improved support for filesystems implementing a custom event-loop
184 * Add 'pkg-config' support
186 * Kernel module can be compiled separately
188 ============================================================================
194 * Minor modifications to the library API
196 * Improvements to the kernel/userspace interface
198 * Mounting by non-root made more secure
200 * Build shared library in addition to the static one
202 * Consolidated mount options
204 * Optimized reading under 2.6 kernels
208 * Support file I/O on deleted files
210 * Extended attributes support
212 ============================================================================
216 * Thanks to user bugreports and stress testing with LTP and sfx-linux
217 a number of bugs were fixed, some quite serious.
219 * Fix compile problems with recent SuSE kernles
221 ============================================================================
225 * Fix mount problems on recent 2.6 kernels with SELinux enabled
227 * Fixed writing files lager than 2GBytes
231 ============================================================================
235 * Support for the 2.6 kernels
237 * Support for exporting filesystem over NFS in 2.6 kernels
239 * Read efficiency improvements: read in 64k blocks instead of 4k
240 (Michael Grigoriev). Can be turned on with '-l' option of fusermount
242 * Lazy automatic unmount
244 * Added 'fsync()' VFS call to the FUSE interface
248 ============================================================================
252 * Cleanups and bugfixes
254 * Added 'release()' VFS call to the FUSE interface
256 * 64 bit file offsets (handling of > 4 GByte files)
258 * libfuse is now under LGPL
260 * New 'statfs' call (Mark Glines)
262 * Cleaned up mount procedure (mostly by Mark Glines)
264 NOTE: Binaries linked with with a previous version of libavfs may
265 not work with the new version of the fusermount program. In such
266 case recompile the program after installing the new libavfs library.
268 * Fix for problems under linux kernel 2.4.19
270 ============================================================================
274 * Optimized read/write operations. Raw throughput has increased to
275 about 60Mbyte/s on a Celeron/360
277 * Python bindings by Jeff Epler
279 * Perl bindings by Mark Glines
281 * Improved multithreaded operation
283 * Simplified library interface
287 ============================================================================