Merge branch 'clone_fd'
[fuse.git] / NEWS
blob559ee861e6068d5d0751d2ab279476c149f35aa2
1 What is new in 2.9
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
16  - Add "remember" option
18  - Add man pages for fusermount, mount.fuse and ulockmgr_server
20  - API changes:
22     o Introduce "store" and "retrieve" for accessing kernel buffers on
23       kernel 2.6.36 or newer
25     o Introduce abstract buffer for zero copy operations
27     o Allow path calculation to be omitted on certain operations
29     o Allow batching forget requests
31     o Add "flock" method
33     o Add support for ioctl on directories
35     o Add delete notification
37     o Add fallocate operation (linux kernel 3.5 or newer)
39  - Bug fixes and small improvements
41 ============================================================================
43 What is new in 2.8
45  - More scalable directory tree locking
47  - Atomic open(O_TRUNC) support
49  - Support big write requests on kernels 2.6.26 and newer
51  - Out-of-tree fuse module removed
53  - Better NFS exporting support
55  - New ioctl and poll requests
57  - New CUSE (Character Device in Userspace) interface
59  - Allow umask processing in userspace
61  - Added cache invalidation notifications
63  - Bugfixes and small improvements
65 ============================================================================
67 What is new in 2.7
69  - Stacking support for the high level API
71  - Add filename charset conversion module
73  - Improved mounting
75 ============================================================================
77 What is new in 2.6
79  - Improved read characteristics (asynchronous reads)
81  - Support for aborting filesystem connection
83  - POSIX file locking support
85  - Request interruption support
87  - Building module for Linux kernels earlier than 2.6.9 not supported
89  - Allow block device based filesystems to support swap files
91  - Several bugs fixed, including a rare system hang on SMP
93 ============================================================================
95 What is new in 2.5
97  - Merge library part of FreeBSD port
99  - New atomic create+open, access and ftruncate operations
101  - On filesystems implementing the new create+open operation, and
102    running on Linux kernels 2.6.15 or later, the 'cp' operation will
103    work correctly when copying read-only files.
105  - New option parsing interface added to the library
107  - Lots of minor improvements and fixes
109 ============================================================================
111 What is new in 2.4
113  - Simplify device opening.  Now '/dev/fuse' is a requirement
115  - Allow module auto-loading if user has access to '/dev/fuse'
117  - Allow mounting over a regular file for unprivileged users
119  - Allow mounting of arbitrary FUSE filesystems from /etc/fstab
121  - New mount options: 'umask=M', 'uid=N', 'gid=N'
123  - Check for non-empty mountpoint, and refuse mount by default.  New
124    mount option: 'nonempty'
126  - Low level (inode based) API added
128  - Allow 'direct_io' and 'keep_cache' options to be set on a
129    case-by-case basis on open.
131  - Add 'attr_timeout' and 'entry_timeout' mount options to the
132    high-level library.  Until now these timeouts were fixed at 1 sec.
134  - Some bugfixes
136 ============================================================================
138 What is new in 2.3
140  - Add new directory related operations: opendir(), readdir(),
141    releasedir() and fsyncdir()
143  - Add init() and destroy() operations which are called before the
144    event loop is started and after it has exited
146  - Update kernel ABI so that on dual architectures (e.g. AMD64) 32bit
147    binaries work under a 64bit kernel
149  - Bugfixes
151 ============================================================================
153 What is new in 2.2
155 Userspace changes:
157  - Add fuse_file_info structure to file operations, this allows the
158    filesystem to return a file handle in open() which is passed to
159    read(), write(), flush(), fsync() and release().
161  - Add source compatibility with 2.1 and 1.4 releases
163  - Binary compatibility with 2.1 release is retained
165 Kernel changes:
167  - Make requests interruptible.  This prevents the filesystem to go
168    into an unbreakable deadlock with itself.
170  - Make readpages() synchronous.  Asynchronous requests are deadlock
171    prone, since they cannot be interrupted (see above)
173  - Remove shared-writeable mapping support, which could deadlock the
174    machine
176  - Remove INVALIDATE userspace initiated request
178  - Update ABI to be independent of sizeof(long), so dual-size archs
179    don't cause problems
181  - Remove /sys/fs/fuse/version.  Version checking is now done through
182    the fuse device
184  - Replace directory reading method on the kernel interface.  Instead
185    of passing an open file descriptor to the kernel, send data through
186    the FUSE device, like all other operations.
188 ============================================================================
190 What is new in 2.1
192 * Bug fixes
194 * Improved support for filesystems implementing a custom event-loop
196 * Add 'pkg-config' support
198 * Kernel module can be compiled separately
200 ============================================================================
202 What is new in 1.9
204 * Lots of bugs fixed
206 * Minor modifications to the library API
208 * Improvements to the kernel/userspace interface
210 * Mounting by non-root made more secure
212 * Build shared library in addition to the static one
214 * Consolidated mount options
216 * Optimized reading under 2.6 kernels
218 * Direct I/O support
220 * Support file I/O on deleted files
222 * Extended attributes support
224 ============================================================================
226 What is new in 1.3
228 * Thanks to user bugreports and stress testing with LTP and sfx-linux
229 a number of bugs were fixed, some quite serious.
231 * Fix compile problems with recent SuSE kernles
233 ============================================================================
235 What is new in 1.2
237 * Fix mount problems on recent 2.6 kernels with SELinux enabled
239 * Fixed writing files lager than 2GBytes
241 * Other bugfixes
243 ============================================================================
245 What is new in 1.1
247 * Support for the 2.6 kernels
249 * Support for exporting filesystem over NFS in 2.6 kernels
251 * Read efficiency improvements: read in 64k blocks instead of 4k
252 (Michael Grigoriev).  Can be turned on with '-l' option of fusermount
254 * Lazy automatic unmount
256 * Added 'fsync()' VFS call to the FUSE interface
258 * Bugfixes
260 ============================================================================
262 What is new in 1.0
264 * Cleanups and bugfixes
266 * Added 'release()' VFS call to the FUSE interface
268 * 64 bit file offsets (handling of > 4 GByte files)
270 * libfuse is now under LGPL
272 * New 'statfs' call (Mark Glines)
274 * Cleaned up mount procedure (mostly by Mark Glines)
276   NOTE: Binaries linked with with a previous version of libavfs may
277   not work with the new version of the fusermount program.  In such
278   case recompile the program after installing the new libavfs library.
280 * Fix for problems under linux kernel 2.4.19
282 ============================================================================
284 What is new in 0.95
286 * Optimized read/write operations.  Raw throughput has increased to
287 about 60Mbyte/s on a Celeron/360
289 * Python bindings by Jeff Epler
291 * Perl bindings by Mark Glines
293 * Improved multithreaded operation
295 * Simplified library interface
297 * Bugfixes
299 ============================================================================
301 What is new in 0.9:
303 * Everything