Edit: /usr/share/doc/fuse/ChangeLog (109230B)
FUSE 2.9.9 (2019-01-04)
=======================
* Added OpenAFS to whitelist (so users can now mount FUSE filesystems
on mountpoints within OpenAFS filesystems).
* Added a test of `seekdir` to test_syscalls.
* Fixed `readdir` bug when non-zero offsets are given to filler and the
filesystem client, after reading a whole directory, re-reads it from a
non-zero offset e. g. by calling `seekdir` followed by `readdir`.
FUSE 2.9.8 (2018-07-24)
=======================
* SECURITY UPDATE: In previous versions of libfuse it was possible to
for unprivileged users to specify the `allow_other` option even when
this was forbidden in `/etc/fuse.conf`. The vulnerability is
present only on systems where SELinux is active (including in
permissive mode).
* libfuse no longer segfaults when fuse_interrupted() is called outside
the event loop.
* The fusermount binary has been hardened in several ways to reduce
potential attack surface. Most importantly, mountpoints and mount
options must now match a hard-coded whitelist. It is expected that
this whitelist covers all regular use-cases.
* Fixed rename deadlock on FreeBSD.
FUSE 2.9.7 (2016-06-20)
=======================
* Added SELinux support.
* Fixed race-condition when session is terminated right after starting
a FUSE file system.
FUSE 2.9.6 (2016-04-23)
=======================
* Tarball now includes documentation.
* Shared-object version has now been bumped correctly.
FUSE 2.9.5 (2016-01-14)
=======================
* New maintainer: Nikolaus Rath
. Many thanks to
Miklos Szeredi for bringing FUSE to where it is
now!
* fix warning in mount.c:receive_fd(). Reported by Albert Berger
* fix possible memory leak. Reported by Jose R. Guzman
FUSE 2.9.4 (2015-05-22)
=======================
* fix exec environment for mount and umount. Found by Tavis Ormandy
(CVE-2015-3202).
* fix fuse_remove_signal_handlers() to properly restore the default
signal handler. Reported by: Chris Johnson
* highlevel API: fix directory file handle passed to ioctl() method.
Reported by Eric Biggers
* libfuse: document deadlock avoidance for fuse_notify_inval_entry()
and fuse_notify_delete()
* fusermount, libfuse: send value as unsigned in "user_id=" and
"group_id=" options. Uids/gids larger than 2147483647 would result
in EINVAL when mounting the filesystem. This also needs a fix in
the kernel.
* Initilaize stat buffer passed to ->getattr() and ->fgetattr() to
zero in all cases. Reported by Daniel Iwan
* libfuse: Add missing includes. This allows compiling fuse with
musl. Patch by Daniel Thau
Older Versions (before 2013-01-01)
==================================
2013-06-20 Miklos Szeredi
* libfuse: fix multiple close of device fd. Reported by Dan
Greenfield
2013-03-19 Miklos Szeredi
* libfuse: fix thread cancel race. Exiting a worker my race with
cancelling that same worker. This caused a segmenation
fault. Reported and tested by Anatol Pomozov
2013-02-04 Miklos Szeredi
* libfuse: fix crash in unlock_path(). Patch by Ratna Manoj
* libfuse: fix the 'remember' option. The lru list was not
initialized for the "/" path. This resulted in remove_node_lru()
crashing on LOOKUP-DOTDOT. Patch by Madan Valluri
* libfuse: configure: detect new util-linux
* libfuse: Use AC_CONFIG_HEADERS instead of AM_CONFIG_HEADER.
Patch by Anatol Pomozov
* libfuse: rename ./configure.in to ./configure.ac. Patch by
Anatol Pomozov
2012-10-01 Miklos Szeredi
* Released 2.9.2
2012-10-01 Miklos Szeredi
* Fix deadlock in libfuse. Running "svn update" on a fuse
filesystem could deadlock because of a bug in the way the paths
are locked. Reported by Kazuaki Anami
2012-08-23 Miklos Szeredi
* Fix missing config.h in buffer.c. Reported by Matthew Gabeler-Lee
2012-08-14 Miklos Szeredi
* Not unhashing the name in forget (commit on 2011-12-09) broke
the forget logic in a subtle way, resulting in "fuse internal
error: node NNN not found" and causing the filesystem daemon to
abort. Fix by incrementing the node refcount if nlookup goes from
zero to one. Reported by Kyle Lippincott
2012-08-13 Miklos Szeredi
* Fix linking against GNU libiconv. Patch by Natanael Copa
2012-07-19 Miklos Szeredi
* Released 2.9.1
2012-07-19 Miklos Szeredi
* Fix crash caused by freeing a stack address. Reported by Itay
Perl
2012-07-04 Miklos Szeredi
* Fix install of mount.fuse from out-of-tree build. Patch by
Olivier Blin
* Fix build with automake >= 1.12.1. Patch by Olivier Blin
2012-04-24 Miklos Szeredi
* Add fallocate operation. Only works on linux kernels 3.5 or
later. Patch by Anatol Pomozov
2012-05-16 Miklos Szeredi
* Linking to a library that uses threads requires the application
to be linked with -pthreads otherwise some pthread functions will
be linked to stubs in glibc. So move -pthread from Libs.private
to Libs in fuse.pc. Reported by Werner Fink
* Fix the compile command in the examples. Reported by Luciano
Dalle Ore
2012-04-20 Miklos Szeredi
* Released 2.9.0
2012-04-20 Miklos Szeredi
* Add missing fuse_fs_flock to fuse_versionscript
2012-04-10 Miklos Szeredi
* Check protocol version before sending notifications and return
-ENOSYS if a particular notification is not supported.
* Add 'flag_utime_omit_ok' flag to fuse_operations. If the
filesystem sets this flag then ->utimens() will receive UTIME_OMIT
and UTIME_NOW values as specified in utimensat(2).
2012-01-27 Miklos Szeredi
* Interpret octal escape codes in options. Requested by Jan
Engelhardt
2012-01-26 Miklos Szeredi
* Add man pages for fusermount, mount.fuse and ulockmgr_server.
Lifted from the Debian package. The man pages were written by
Daniel Baumann and Bastien Roucaries
2012-01-13 Miklos Szeredi
* Disable symbol versions on MacOSX. Patch by Anatol Pomozov
2012-01-02 Miklos Szeredi
* Remove unnecessary mutex unlock at the end of multithreaded
event loop.
2011-12-09 Miklos Szeredi
* Fix hang in wait_on_path(). Reported by Ville Silventoinen
* Don't unhash name in FORGET. This resulted in ENOENT being
returned for unlinked but still open files if the kernel sent a
FORGET request for the parent directory.
* Free request in fuse_reply_data().
2011-12-08 Miklos Szeredi
* Fix build if FUSE_NODE_SLAB is not defined. Patch by Emmanuel
Dreyfus
* Check for availability of utimensat() function. Patch by
Emmanuel Dreyfus
2011-12-07 Miklos Szeredi
* Add fuse_lowlevel_notify_delete() which tells the kernel that a
file or directory is deleted. Patch by John Muir
2011-12-06 Miklos Szeredi
* Update retrieve_reply() method
2011-12-05 Miklos Szeredi
* Low level API: lock argument of fuse_reply_lock should have a
'const' qualifier. Reported by Shachar Sharon
* Add support for ioctl on directories. Reported by Antonio SJ
Musumeci
2011-10-13 Miklos Szeredi
* Reply to request with ENOMEM in case of failure to allocate
request structure. Otherwise the task issuing the request will
just freeze up until the filesystem daemon is killed. Reported by
Stephan Kulow
2011-09-23 Miklos Szeredi
* Replace daemon() function with fork(). Patch by Anatol Pomozov
2011-08-26 Miklos Szeredi
* If configured with --disable-mtab then don't call mount(8) from
libfuse to update the mtab. Reported by: James Sierp
2011-08-24 Miklos Szeredi
* Use LRU list for cleaning up the cache if the "remember=T"
option was given. Patch by therealneworld@gmail.com
2011-07-06 Miklos Szeredi
* Add ->flock() operation to low and high level interfaces. This
fixes problems with emulating flock() with POSIX locking.
Reported by Sebastian Pipping. As with lock/setlk/getlk most
filesystems don't need to implement this, as the kernel takes care
of file locking. The only reason to implement locking operations
is for network filesystems which want file locking to work between
clients.
2011-07-02 Sebastian Pipping
* Make xmp_utimens of examples "fusexmp" and "fusexmp_fh"
not follow symlinks as other layers do that already.
2011-06-02 Miklos Szeredi
* Add "remember" option. This works similar to "noforget" except
that eventually the node will be allowed to expire from the cache.
Patch by therealneworld@gmail.com
2011-05-27 Miklos Szeredi
* Check if splice/vmsplice are supported
2011-05-26 Miklos Szeredi
* Remove -lrt -ldl from fuse.pc for dynamic linking since
libfuse.so is already linked with these libraries. Reported by:
Nikolaus Rath
2011-05-20 Miklos Szeredi
* Cleaner build output. Patch by Reuben Hawkins
2011-05-19 Miklos Szeredi
* Disable splice by default, add "splice_read", "splice_write" and
"splice_move" options. Keep the "no_splice_*" variants, which can
disable splice even if the filesystem explicitly enables it.
2011-04-15 Max Krasnyansky
* Added support for "auto_unmount" option which unmounts the
filesystem automatically on process exit (or crash).
2011-03-30 Miklos Szeredi
* Patches by Laszlo Papp fixing various issues found by the
Coverity checker
2011-03-11 Miklos Szeredi
* In case of failure to add to /etc/mtab don't umount. Reported
by Marc Deslauriers
2011-02-02 Miklos Szeredi
* libfuse: In fuse_session_loop_mt() don't pause when exiting the
worker threads. The pause() was added in 2.2.1 to prevent
segfault on pthread_cancel() on an exited, detached thread. Now
worker threads are not detached and pthread_cancel() should work
fine even after the thread exited. Reported by Boris Protopopov
2011-01-31 Miklos Szeredi
* fusermount: chdir to / before performing mount/umount
* fusermount: only allow mount and umount if util-linux supports
--no-canonicalize
2010-12-16 Miklos Szeredi
* Highlevel lib: allow hash tables to shrink
* Highlevel lib: add slab allocation for node cache. This will
allow the memory used by the filesystem to grow and shrink
depending on how many inodes are currently cached.
2010-12-13 Miklos Szeredi
* Highlevel lib: use dynamically resized hash table for looking up
by name and node ID.
2010-12-07 Miklos Szeredi
* Allow batching of forget requests. This allows forget requests
to be processed faster and doesn't require a modification to fuse
filesystems. Reported by Terje Malmedal
* Add ->forget_multi() operation to the lowlevel API. The
filesystem may implement this to process multiple forget requests
in one call
* Fix the ambiguity of ioctl ABI on the kernel/userspace boundary
for 32bit vs. 64bit userspace
2010-11-10 Miklos Szeredi
* Add new write_buf() method to the highlevel API. Similarly to
the lowlevel write_buf() method, this allows implementing zero
copy writes.
* Add a new read_buf() method to the highlevel API. This allows
returning a generic buffer from the read method, which in turn
allows zero copy reads.
* In fusexmp_fh implement the ->read_buf() and ->write_buf()
methods. Leave the ->read() and ->write() implementations for
reference, even though they are not necessary.
2010-11-08 Miklos Szeredi
* Fix check for read-only fs in mtab update
* Open /dev/null for write instead of read for redirecting stdout
and stderr
* If umount(8) supports --fake and --no-canonicalize (util-linux-ng
version 2.18 or later), and umount(2) supports the
UMOUNT_NOFOLLOW flag (linux kernel version 2.6.35 or later) then,
"fusermount -u" will call the umount(2) system call and use
"umount --fake ..." to update /etc/mtab
* Added --disable-legacy-umount option to configure. This
disables the runtime checking of umount(8) version. When built
with this option then "fusermount -u" will fail if umount(8)
doesn't support the --fake and --no-canonicalize options.
* Fix fuse_buf_copy() if already at the end of the buffers
* Add new ->write_buf() method to low level interface. This
allows passig a generic buffer, either containing a memory buffer
or a file descriptor. This allows implementing zero copy writes.
* Add fuse_session_receive_buf() and fuse_session_process_buf()
which may be used in event loop implementations to replace
fuse_chan_recv() and fuse_session_process() respectively.
* Remove unnecessary restoring of current working directory in
"fusermount -u"
* Add ctx->pid to debug output
* Fix st_nlink value in high level lib if file is unlinked but
still open
* libfuse: add store request. Request data to be stored in the
kernel buffers for a given inode.
* libfuse: add retrieve request. Retrieve data stored in the
kernel buffers for a given inode.
2010-10-14 Miklos Szeredi
* Use LTLIBICONV when linking libfuse. This fixes building against
uclibc + libiconv. Patch by Natanael Copa
2010-10-05 Miklos Szeredi
* Add missing argument check in ulockmgr.c to prevent calling
ulockmgr_server with illegal arguments. This would cause an ever
growing list of ulockmgr_server processes with an endless list of
open files which finally exceeds the open file handle limit.
Patch by Markus Ammer
2010-09-28 Miklos Szeredi
* Fix ambiguous symbol version for fuse_chan_new.
fuse_versionscript included fuse_chan_new in both FUSE_2.4 and
FUSE_2.6. Remove the FUSE_2.4, which is invalid.
2010-09-28 Miklos Szeredi
* Fix option escaping for fusermount. If the "fsname=" option
contained a comma then the option parser in fusermount was
confused (Novell bugzilla #641480). Fix by escaping commas when
passing them over to fusermount. Reported by Jan Engelhardt
2010-08-27 Miklos Szeredi
* Add NetBSD support. Patch from Emmanuel Dreyfus
2010-07-12 Miklos Szeredi
* libfuse: add buffer interface. Add a generic buffer interface
for use with I/O. Buffer vectors are supplied and each buffer in
the vector may be a memory pointer or a file descriptor.
* The fuse_reply_fd() interface is converted to using buffers.
2010-06-23 Miklos Szeredi
* Make the number of max background requests and congestion
threshold tunable. New options are "max_background" and
"congestion_threshold". Only effective on linux kernel versions
2.6.32 or greater. Patch by Csaba Henk
2010-06-17 Miklos Szeredi
* Add fuse_reply_fd() reply function to the low level interface.
On linux version 2.6.35 or greater this will use splice() to move
data directly from a file descriptor to the fuse device without
needing to go though a userspace buffer. With the
FUSE_REPLY_FD_MOVE flag the kernel will attempt to move the data
directly into the filesystem's cache. On earlier kernels it will
fall back to an intermediate buffer. The options
"no_splice_write" and "no_splice_move" can be used to disable
splicing and moving respectively.
2010-06-15 Miklos Szeredi
* Fix out-of-source build. Patch by Jörg Faschingbauer
* Add a "nopath" option and flag, indicating that path argument
need not be calculated for the following operations: read, write,
flush, release, fsync, readdir, releasedir, fsyncdir, ftruncate,
fgetattr, lock, ioctl and poll.
2010-05-10 Miklos Szeredi
* Remove "chmod root" from install of fusermount. Reported by
Lucas C. Villa Real
2010-04-26 Miklos Szeredi
* Released 2.8.4
2010-04-26 Miklos Szeredi
* Fix checking for symlinks in umount from /tmp. Reported by Al
Viro
* Fix umounting if /tmp is a symlink. Reported by Franco Broi
2010-02-18 Miklos Szeredi
* Fix definition of FUSE_OPT_END for C++. Reported by Tim
Bruylants
2010-02-03 Miklos Szeredi
* Fix stack alignment for clone()
2010-02-01 Miklos Szeredi
* Released 2.8.3
2010-02-01 Miklos Szeredi
* Using "--no-canonicalize" with umount(8) conflicts with the race
fix, sinceit assumes the supplied path is absolute, while the race
fix relies on the path being relative to the current directory.
Reported by Tom Rindborg
2010-01-26 Miklos Szeredi
* Released 2.8.2
2010-01-21 Miklos Szeredi
* Fix race if two "fusermount -u" instances are run in parallel.
Reported by Dan Rosenberg
* Make sure that the path to be unmounted doesn't refer to a
symlink
2010-01-14 Miklos Szeredi
* Fix compile error on FreeBSD. Patch by Jay Sullivan
2009-12-17 Miklos Szeredi
* Use '--no-canonicalize' option of mount(8) (available in
util-linux-ng version 2.17 or greater) to avoid calling
readling(2) on the newly mounted filesystem before the mount
procedure is finished. This has caused a deadlock if "audit" was
enabled in the kernel. Also use '--no-canonicalize' for umount to
avoid touching the mounted filesystem.
2009-09-11 Miklos Szeredi
* Released 2.8.1
2009-08-25 Miklos Szeredi
* Fix missing versioned symbol fuse_get_context@FUSE_2.2
2009-08-18 Miklos Szeredi
* Released 2.8.0
2009-08-18 Miklos Szeredi
* Add missing fuse_session_data to versionscript
* Make sure all global symbols are prefixed with "fuse_" or "cuse_"
2009-07-16 Miklos Szeredi
* Clarify how the protocol version should be negotiated between
kernel and userspace. Notably libfuse didn't correctly handle the
case when the supported major versions didn't match
* Add missing pthread link for libulockmgr. Patch by Petr Salinger
2009-07-02 Miklos Szeredi
* The context is extended with a 'umask' field. The umask is sent
for mknod, mkdir and create requests by linux kernel version
2.6.31 or later, otherwise the umask is set to zero. Also
introduce a new feature flag: FUSE_CAP_DONT_MASK. If the kernel
supports this feature, then this flag will be set in conn->capable
in the ->init() method. If the filesystem sets this flag in in
conn->want, then the create modes will not be masked.
* Add low level interfaces for lookup cache and attribute
invalidation. This feature is available in linux kernels 2.6.31
or later. Patch by John Muir
* Kernel interface version is now 7.12
* fusermount: Do not silently ignore command line arguments.
Patch by Sebastian Harl
2009-06-19 Miklos Szeredi
* Released 2.8.0-pre3
2009-06-19 Miklos Szeredi
* Add fuse_getgroups (high level lib) and fuse_req_getgroups (low
level lib) functions to query the supplementary group IDs for the
current request. Currently this is implemented on Linux by
reading from the /proc filesystem.
2009-06-18 Miklos Szeredi
* Add "noforget" option to high level lib to prevent ESTALE errors
on NFS exported filesystems. This result in paths being cached
forever, resulting in ever growing memory usage. Use with care.
* Add "no_remote_lock" option to disable remote file locking even
if the filesystem implements it. With this option locking
primitives (flock, lockf, fcntl(F_SETLK)) will still work, but
will ignore remotely locked files.
* CUSE patches from Tejun Heo:
* Unrestricted ioctl support left some debris. Clean them up:
o No reason to pass around pointer to flags. Pass flags directly.
o Clean up comment and prototype parameter names.
o fuse_lib_ioctl() didn't reply when get_path() failed. Fix it.
o Remove unused variables {in|out}_iov from fuse_lib_ioctl().
* Add fuse_reply_ioctl_iov()
* Move fuse_session, fuse_req and fuse_ll definitions to fuse_i.h
and make send_reply_iov() and fuse_setup_common() global (also in
fuse_i.h). These will be used by CUSE support.
* Restructure fuse_ll_process()
* Implement libfuse side of CUSE support. CUSE uses subset of FUSE
operations as dir operations don't make sense for CUSE where one
instance implements single character device.
CUSE support comes with its own cuse_lowevel_ops and related
initialization and helper functions. Except for initialization, it
usage is basically identical to FUSE.
This patch also adds example/cusexmp.c which can create a character
device with name and device number specified on command line. The
created device itself is pretty boring. It's a bit bucket supporting
read, write and access via ioctl.
2009-06-16 Miklos Szeredi
* Add missing fuse_reply_bmap to versionscript. Debian
Bug#531329. Reported by Goswin Brederlow
2009-05-27 Miklos Szeredi
* Don't call forget_node() if the lookup was negative and write()
for the reply returned ENOENT. Reported by John Haxby
2009-05-25 Miklos Szeredi
* Add FUSE_CAP_EXPORT_SUPPORT to fuse_common.h
2009-05-08 Miklos Szeredi
* Fix missing newlines in some printfs
* Fix 'make install-strip'. Reported by Dominick Layfield
2009-01-05 Miklos Szeredi
* Released 2.8.0-pre2
2008-12-08 Miklos Szeredi
* Implement poll support. Patch by Tejun Heo
* Add missing setattr flags to .
* Only pass valid flags to ->setattr().
2008-12-05 Miklos Szeredi
* Implement ioctl support. On high level interface only
"restricted" ioctls are supported (which are defined with the
_IO(), _IOR(), _IOW() or _IOWR() macros). Unrestricted ioctls
will only be allwed to CUSE (Character Device in Userspace)
servers. Patch by Tejun Heo
2008-11-28 Miklos Szeredi
* If open sets fi->nonseekable, libfuse will tell the kernel that
the file is not seekable. Patch by Tejun Heo
2008-11-19 Miklos Szeredi
* lowlevel lib: fix deadlock if fuse_reply_* is called from the
interrupt handling function. Reported by Tero Marttila
2008-10-16 Miklos Szeredi
* Allow commas in options to be escaped with a backslash
* Add new function: fuse_opt_add_opt_escaped()
* Add missing fuse_reply_bmap() to the version script
2008-10-14 Miklos Szeredi
* Pass current file flags to read and write operations
2008-07-24 Miklos Szeredi
* Clean up debug output in highlevel lib
2008-07-10 Miklos Szeredi
* Released 2.8.0-pre1
2008-06-27 Miklos Szeredi
* Fix handling of (no)suid and (no)dev options if filesystem is
mounted from /etc/fstab or via mount(8). Reported by Jan Ondrej.
* Skip calling mount(8) if /etc/mtab doesn't exist or if it's on a
read-only filesystem. This works around issues with certain mount
implementations. Reported by Szabolcs Szakacsits.
2008-06-16 Miklos Szeredi
* Remove fuse kernel module sources. Linux 2.6.27 will support
NFS exporting.
2008-06-10 Miklos Szeredi
* Fix theoretical infinite loops in libfuse. Reported by Szabolcs
Szakacsits
* Fix missing include for PATH_MAX. Reported by
Szabolcs Szakacsits
2008-05-23 Miklos Szeredi
* Fix mounting over symlink. Reported by Szabolcs Szakacsits
2008-05-09 Miklos Szeredi
* Don't allow bigger than 4kB writes by default on 2.6.26 and
later kernels, so that filesystems not expecting this are not
broken on a kernel upgrade. Provide a 'big_writes' mount option
to enable this feature. In future API revisions this may become
the default.
2008-04-09 Miklos Szeredi
* Update warning message for missing newline at end of fuse.conf
* Update debug message for successful operation to not include the
string "error:"
2008-04-08 Miklos Szeredi
* Update error message for missing mountpoint parameter. Reported
by Allen Pulsifer
2008-04-04 Miklos Szeredi
* Print library version information to debug output
* Highlevel lib: don't limit paths to 4095 characters
2008-03-25 Miklos Szeredi
* Fix memory leaks on mount. Patch by Szabolcs Szakacsits
2008-03-19 Miklos Szeredi
* Fix missing pthread_mutex_destroy in error path of
fuse_lib_opendir(). Patch by Szabolcs Szakacsits
2008-03-07 Miklos Szeredi
* Add queuing on contention to per-node lock algorithm, to avoid
starvation.
* Only enable cancelation when reading a request, otherwise
cancellation could happen with a mutex held, which could hang the
process on umount
2008-02-08 Miklos Szeredi
* Block SIGCHLD when executing mount and umount
* fusexmp_fh: avoid unnecessary seeking in readdir
* Update kernel interface to 7.9:
* Support receiving file handle from kernel in GETATTR request
* Allow operations with a NULL path argument, if the filesystem
supports it
* Add support atomic open(O_TRUNC)
* Support the st_blksize field in struct stat
* If the "FUSE_THREAD_STACK" environment is set, initialize the
stack size of threads by this value. Patch by Florin Malita
* Add per-node locking, instead of a global tree lock to protect
the path from changing during operations. Original patch by
Rodrigo Castro
2008-02-03 Csaba Henk
* lib/mount_bsd.c:
- string formatting fixes
- exit if mounting has failed
(in FreeBSD a mount failure is not critical per se, as the daemon
still could be mounted externally, but waiting for such an event
is more confusing than fruitful)
- ditch the kvm(8) stuff and simply use forced unmount which just
won't block
- prettify option specifications
- add "-onosync_unmount" kernel option
2008-01-07 Csaba Henk
* lib/mount_bsd.c:
- refine device closing in a race-free way
- add support for "-osubtype" on FreeBSD
* makeconf.sh: make it work under FreeBSD
2008-01-03 Csaba Henk
* lib/mount_bsd.c: close device before unmount
(cf. lib/mount.c rev. 1.43) and fix some warnings
2007-12-23 Miklos Szeredi
* Fix './configure --disable-static'. Patch from Ismail Dönmez
2007-12-17 Miklos Szeredi
* Released 2.7.2
2007-12-12 Miklos Szeredi
* Fix kernel module compile for 2.6.24
* Invalidate attributes of parent directory after create(), since
the modification time changes. Invalidate attributes on rename,
since some filesystems may update st_ctime. Reported by Szabolcs
Szakacsits
* Fix NFS exporting to handle 64bit node IDs
* Disable old symbol versions if __UCLIBC__ is defined. If a
symbol in a library has multiple versions, the runtime linker in
uClibc seems to randomly choose between them.
* Remove erroneous 'fuse_opt_insert_arg@FUSE_2_5' from
fuse_version_script. fuse_opt_free_args() was added in fuse-2.6.
* Close fuse device file descriptor before calling umount(),
preventing a deadlock when umount is synchronous. Reported by
Szabolcs Szakacsits
2007-11-12 Miklos Szeredi
* 'fusermount -u' did not umount the filesystem if /etc/mtab was a
symlink. This bug was introduced in 2.7.1 by "Don't call
/bin/[u]mount if /etc/mtab is a symlink". Found by robertsong.
2007-10-16 Miklos Szeredi
* Released 2.7.1
2007-10-16 Miklos Szeredi
* Clarify licence version to be "LGPLv2" for the library
* kernel fixes:
* After mount set nlink attribute for the root inode to 1
* Fix wake up of task waiting for a reserved request
* Fix allowing setattr, listxattr and statfs for other users
2007-09-18 Miklos Szeredi
* Add missing context initialization in fuse_fs_chmod(). Bug
found by "iohead"
* Fix kernel module compilation for 2.6.23. Based on patch by
Marian Marinov
2007-09-04 Philippe Elie
* lib/fuse_lowlevel.c: fix a fuse_req leak in do_forget()
2007-07-31 Miklos Szeredi
* Work around hotplug issue, that it calls filesystem with file
descriptors 0, 1 and 2 not open. Tracked down by Leif Johnson
2007-07-25 Miklos Szeredi
* Don't call /bin/[u]mount if /etc/mtab is a symlink. Reported by
Tomas M
* Also don't touch /etc/mtab if it is within the mounted
filesystem. Suggested by Jeffrey Law
2007-07-12 Miklos Szeredi
* Reset args->argc in fuse_opt_free_args(). Patch by Lucas
C. Villa Real
2007-07-02 Miklos Szeredi
* Released 2.7.0
2007-07-02 Miklos Szeredi
* Accept a NULL "op" for fuse_main(), etc. This is useful if
filesystem is only invoking fuse to print a help message, or
version. Fixes RedHat bugzilla #217343
2007-06-22 Miklos Szeredi
* lib: fix locking when loading a filesystem module
2007-06-21 Miklos Szeredi
* Add fs subtype support to mount.fuse
2007-06-20 Miklos Szeredi
* Add fs subtype support to libfuse and fusermount
2007-06-19 Miklos Szeredi
* kernel: sync with mainline (2.6.22)
2007-06-18 Miklos Szeredi
* Send debug output to stderr instead of stdout. Patch by Jan
Engelhardt
2007-06-03 Miklos Szeredi
* libulockmgr: Work around a kernel bug in recv(), causing it to
sometimes return zero even if data was available on the socket.
2007-05-29 Miklos Szeredi
* lib: optimization: store parent pointer in node instead of
parent id
2007-05-25 Miklos Szeredi
* lib: don't create new thread for each FORGET request. FORGET
messages sometimes caused so many threads to be created, that
process virtual memory space ran out. Reported by Chris AtLee
2007-05-24 Miklos Szeredi
* lib: fix memory leak on thread creation failure in multithreaded
event loop. Found by Chris AtLee
2007-05-23 Miklos Szeredi
* lowlevel lib: add fuse_reply_iov function, which is similar to
fuse_reply_buf, but accepts a vector of buffers. Patch by Roger
Willcocks
2007-05-21 Miklos Szeredi
* Fix Oops or error if a regular file is created with mknod(2) on
a fuse filesystem. Kernels 2.6.18 onward are affected. Thanks to
J. Cameijo Cerdeira for the report
2007-05-11 Csaba Henk
* libfuse: fix return value of fuse_loop()/fuse_loop_mt().
Error reported by Csaba Henk, fix by Miklos Szeredi
* libfuse: fix unlock in flush
* libfuse: do unlocking on RELEASE+FLUSH
2007-05-03 Miklos Szeredi
* Released 2.7.0-rc1
2007-05-02 Miklos Szeredi
* kernel: sync with mainline:
* Use invalidate_mapping_pages() if available
* Fix BUG when invalid file type is supplied in mount. Patch by
Timo Savola
2007-04-27 Miklos Szeredi
* libfuse: call umount(8) directly instead of fusermount if
possible
* Clean up init script, make it LSB compliant
2007-04-26 Miklos Szeredi
* In multithreaded loop, use a semaphore instead of SIGHUP to wake
up the main thread on umount. This is more elegant, and works
even if signals are blocked.
2007-04-25 Miklos Szeredi
* Improve mounting support in libfuse:
- check non-empty mountpoint
- only fall back to fusermount when necessary
2007-04-23 Miklos Szeredi
* Don't chdir to "/" in foreground mode, it causes more trouble
than it's worth
2007-04-18 Miklos Szeredi
* Replace utils/mount.fuse "sh" script with a "C" program
2007-04-15 Miklos Szeredi
* Add -lulockmgr to compilation comment in fusexmp_fh.c
2007-04-05 Miklos Szeredi
* Check for iconv. Patch by Csaba Henk
* Add direct umounting
* Use "fusectl" as the device for the fusectl filesystem. Debian
Bug#417945. Reported by Laurent Bonnaud
2007-04-01 Csaba Henk
* Fix some FreeBSD related macros.
2007-03-30 Miklos Szeredi
* Add support for direct mounting by libfuse. Fall back on
calling fusermount if it doesn't work
2007-03-14 Miklos Szeredi
* Released 2.7.0-pre1
2007-03-05 Miklos Szeredi
* Correctly handle O_APPEND in direct IO mode. Reported by Greg
Bruno
* mount.fuse should use /bin/bash. Debian Bug#413403. Reported
by Thomas Weinbrenner
2007-02-26 Miklos Szeredi
* Fix detection of installed fuse in init script. Reported and
fix suggested by Davide Canova
2007-02-05 Miklos Szeredi
* Fix 2.6.9 RHEL kernels, which have compatibility mutex.h, but
don't define mutex_destroy(), bummer. Patch from Phil Schwan
2007-02-04 Miklos Szeredi
* Compile fuseblk for kernels which don't have an option to turn
off the block layer (CONFIG_BLOCK). Reported by Szakacsits
Szabolcs
2007-02-03 Miklos Szeredi
* Add filesystem stacking support to high level API. Filesystem
modules can be built into libfuse or loaded from shared object
(.so) files
* Add 'subdir' and 'iconv' built in modules
* lib/fuse.c: Fix locking for the reply code in create and open
2007-02-02 Miklos Szeredi
* kernel: make it compile on "strange" kernels which have emulated
mutexes via but no i_mutex. Reported by Tomasz
Mateja
2007-01-28 Miklos Szeredi
* kernel: fix BUG in control filesystem if it is umounted and
mounted again, while some fuse filesystems are present.
Bugreport from Florent Mertens
* kernel: sync with mainline, support 2.6.20
2007-01-22 Miklos Szeredi
* lib/Makefile.am: actually link libfuse against libfuse_libs
2007-01-19 Miklos Szeredi
* Build fix for 2.6.16 vanila and 2.6.15 FC5 kernels. Patch from
Ian Abbott
2007-01-18 Miklos Szeredi
* Fix abort in fuse_new() compatibility API for opts == NULL case.
Novell bugzilla #233870. Patch from Takashi Iwai.
2007-01-13 Miklos Szeredi
* Fix option parsing in mount.fuse. Patch from Jens M. Noedler
2007-01-02 Miklos Szeredi
* Fix unaligned access in file desctriptor passing in libfuse,
fusermount and ulockmgr. Debian bug ID: 404904. Reported and
tested by Sebastian Fontius
2006-12-16 Miklos Szeredi
* kernel: don't keep unreferenced inodes in the icache.
2006-12-15 Miklos Szeredi
* fusermount: Fix detection of fuseblk. Reported by Szakacsits
Szabolcs
* lib: Fix use after free in fuse_flush(). Reported by Ron
Lindman
2006-12-10 Miklos Szeredi
* mount.fuse: add "setuid=USER" option which does a "su - USER"
for the filesystem
* fusermount: use "/bin/mount -f" to add entry to /etc/mtab, and
"/bin/umount" to remove entry from /etc/mtab. This gets rid of
the ugly code dealing with mtab, as well as a possible race
between fusermount and mount trying to modify /etc/mtab at the
same time
* Fix "buffer size too small: 4" warning for users of the
fuse_loop_mt_proc() function.
2006-12-04 Miklos Szeredi
* Fix warnings with gcc-4.1 on 64bit archs. Report from
Harshavardhana
* Add extra warning options, and fix resulting warnings
* Really fix fuse_teardown problem
2006-12-02 Miklos Szeredi
* Add -lrt to fuse.pc (if needed) to fix static linking against
libfuse. Reported by Szakacsits Szabolcs
2006-12-01 Miklos Szeredi
* Released 2.6.1
2006-11-30 Miklos Szeredi
* Fix API version 21 and 22 compatibility for fuse_teardown.
Reported by Bgs
2006-11-29 Miklos Szeredi
* fusermount: Print a more helpful message in case the kernel
doesn't support the 'fuseblk' filesystem type. This has been
biting ntfs-3g users. Reported by Yura Pakhuchiy
* kernel: fix build problem for "make -C ...". Reported by
Stephen Bryant
2006-11-19 Miklos Szeredi
* Fix bug in certain error paths of lookup routines. The request
object was reused for sending FORGET, which is illegal. This bug
could cause an Oops in linux-2.6.18 or in fuse-2.6.0, and might
silently corrupt memory in earlier versions. Report and test
program by Russ Cox
2006-11-11 Miklos Szeredi
* Print an error if an incompatible kernel interface version is
detected in INIT. This will only show if filesystem is started
with -d or -f
* Fix order of fuse_destroy()/fuse_unmount() in error cleanup of
fuse_setup_common(). Reported by Szakacsits Szabolcs
2006-11-06 Miklos Szeredi
* Fix recursive locking in fuse_create(). Thanks to Takuya
Ishibashi for the bug report
2006-10-28 Miklos Szeredi
* Fix automake problem. Patch from Nix
2006-10-26 Miklos Szeredi
* Fix mount.fuse to use /bin/sh instead of /bin/bash, which is not
always available on embedded systems. Patch from Paul Smith
* Fix util/Makefile.am, so that failure to run update-rc.d or
device creation doesn't cause make to fail. Reported by Paul
Smith
2006-10-21 Miklos Szeredi
* Released 2.6.0
2006-10-18 Miklos Szeredi
* fusermount: don't try to create a lock file if /etc/mtab is a
symlink. Report and patch from Alexei Sheplyakov (debian bug
#393693)
2006-10-17 Miklos Szeredi
* Minor changes, sync with mainline tree
2006-10-16 Miklos Szeredi
* Released 2.6.0-rc3
2006-10-15 Miklos Szeredi
* kernel: cleanups
2006-10-13 Miklos Szeredi
* kernel: Fix compilation on patched 2.6.18 (fc6) and 2.6.19.
Report from David Shaw
* lib: Fix lost error on renaming a file. Report from David Shaw
* lib: Fix lost error on hiding open files (renaming to
.fuse_hiddenXXXX)
* kernel: Fix a rare hang on SMP/32bit on heavy filesystem
activity. The cause of the bug was that some calls to
i_size_write() were not protected by a lock, and hence
i_size_seqcount could become corrupted. This caused subsequent
calls to i_size_read() to spin forever. This is a long standing
bug was probably introduced in version 2.2, and thought to be
related to NFS exporting (it's not). It was reported by various
people, but Dana Henriksen has finally helped me to track it down,
so big thanks to him
* kernel: Protect against truncation of a swapfile
2006-10-10 Miklos Szeredi
* kernel: Check for signature of super_operations->umount_begin().
Ubuntu kernel 2.6.17 seems to use the new signature found in
2.6.18. Thanks to Florent Mertens for the report
2006-10-08 Miklos Szeredi
* Make sure inode numers wrap around at 2^32. This is needed on
dual 64bit/32bit architectures, because 32bit applications using
the non-largefile interface would otherwise break (EOVERFLOW error
would be returned by the stat() system call family)
* ulockmgr: handle the case, when a locking operation fails
because no more file desctriptors are available in
ulockmgr_server. Also work around a Linux kernel bug (known to
exist for all Linux kernel versions <= 2.6.18) which may cause
sent file descriptors to be lost in the above case
* ulockmgr: optimize file descriptor use
* restore needed cpp flags to util/Makefile.am
* Install udev rules as 99-fuse.rules instead of 60-fuse.rules
* Minor clean up of udev rules
* Add a synchronous DESTROY message to kernel interface. This is
invoked from umount, when the final instance of the filesystem is
released. It is only sent for filesystems mounted with the
'blkdev' option for security reasons.
* If the DESTROY message is received, call the filesystem's
->destroy() method. In this case it's not called from session
destruction as it would be otherwise.
2006-10-01 Miklos Szeredi
* Released 2.6.0-rc2
2006-10-01 Miklos Szeredi
* Add support for FLUSH+RELEASE operation for FreeBSD. Original
patch by Csaba Henk
* Add init script to insert fuse module and mount the control
filesystem. The script is installed as /etc/init.d/fuse and on
debian based systems (where update-rc.d is available) symlinks
from /etc/rc*.d/ are also installed.
* Include '#define FUSE_USE_VERSION=XX' into examples so they
become more self contained.
2006-09-30 Miklos Szeredi
* API changes:
* Move lock_owner from a separate argument into fuse_file_info
* Add a flag to fuse_file_info indicating (1) a highlevel lock
operation (unlock all) was initiated by a flush, (2) a lowlevel
release operation should perform a flush as well.
* fusermount: revert modprobe change (2006-08-18) since it
doesn't work reliably with udev
* Add support for block device backed filesystems. This mode is
selected with the 'blkdev' option, which is privileged.
* Add support for the bmap (FIBMAP ioctl) operation on block
device backed filesystems. This allows swapon and lilo to work on
such filesystems.
* kernel changes:
* Drop support for kernels earlier than 2.6.9. Kernel module from
previous (2.5.x) release can be used with library from this
release
* In fuse_dentry_revalidate() use dget_parent() instead of
dereferencing d_parent, since there's no protection against parent
changing and going away
* Protect nlookup from concurrent updates
* In lookup if a directory alias exists but is unused,
then get rid of it, otherwise return -EBUSY.
* In mkdir if a directory alias exists, return success, but leave
dentry negative. In reality this could happen if a remote rename
immediately followed the mkdir.
* Don't BUG in fuse_iget() if multiple retries are needed to get a
good inode. This could happen if several lookups are racing for
the same inode.
2006-09-29 Miklos Szeredi
* Fix compilation on 2.6.9. Report from Troy Ayers
2006-09-27 Miklos Szeredi
* Fix Oops in fuse_readpages(). Reported by David Shaw
2006-09-24 Csaba Henk
* Add support for nanosec times on FreeBSD
* Fix FreeBSD compatibility issues
2006-09-23 Miklos Szeredi
* Fix one more compatibility bug. Thanks to Ricardo Correia
* Fix utimens compilation with uClibc. Patch from Jamie Guinan
2006-09-22 Miklos Szeredi
* Fixed several compatibility bugs in low level interface.
Reported by Ricardo Correia
* Add workaround for ARM caching bug
2006-09-16 Miklos Szeredi
* Rename new utimes() method to more logical utimens()
2006-09-14 Miklos Szeredi
* Fuse tried to unlink already unlinked hidden files. Bug
reported by Milan Svoboda
2006-09-10 Miklos Szeredi
* Released 2.6.0-rc1
2006-09-10 Miklos Szeredi
* kernel: Fix unlock on close for kernels < 2.6.18
* Add ulockmgr library & server. This can be used for handling
file locking requests either directly from libfuse or over a
network, etc. This first version is not optimized and the number
of file descriptors it uses may get out of hand
2006-09-07 Miklos Szeredi
* lib: Add interrupt support to high level library, which may be
enabled with the 'intr' mount option.
* When an operation is interrupted the thread handling that
operation will receive SIGUSR1 (or other signal specified with the
'intr_signal=N' option). The library installs a no-op signal
handler for this signal, unless there's already a handler
installed.
* The filesystem may query interrupt status (regardless of 'intr')
with the fuse_interrupted() function.
* mount.fuse: initialize $HOME if not set. Report from Sven Goldt
2006-09-03 Miklos Szeredi
* lib: Multithreaded loop now allows unlimited number of threads.
This is needed for locking operations which may block
indefinitely. Also the kernel now doesn't limit the number of
outstanding requests so the library shouldn't do so either.
2006-09-01 Miklos Szeredi
* Fix recursive lock bug in interrupt handling
* Add utimes() method to highlevel interface, which supports
setting times with nanosecond resolution
2006-08-18 Miklos Szeredi
* kernel: fix page leak if fuse_readpages() failed in it's
initialization. Bug found and original patch from Alexander
Zarochentsev
* For linux kernels >=2.6.18 (2.6.19 if using the fuse module from
the kernel tree) the statfs method will receive the path within
the filesystem on which the stat(v)fs syscall was called
* fusermount: try to modprobe fuse module if invoked by root and
unable to open device. This is needed with udev, since the device
node will be created only when the module is inserted, hence
module autoloading won't work. Reported by Szakacsits Szabolcs
2006-07-30 Miklos Szeredi
* fusermount: if selinux is active, restore the original file's
security context in unmount_rename(). Redhat bugzilla id 188561.
Patch from Yves Perrenoud
* Add POSIX file locking operation to high level library
* Initialize context for unlink of hidden files on umount. Bug
reported by Tim Stoakes
2006-07-14 Miklos Szeredi
* Multiple release() calls can race with each other, resulting in
the hidden file being deleted before the last release finishes.
Bug found and patch tested by Mark Huijgen
2006-07-05 Miklos Szeredi
* fusermount: if /dev/fuse doesn't exist, suggest modprobing fuse;
this makes sense on systems using udev. Reported by Szakacsits
Szabolcs
2006-06-29 Miklos Szeredi
* Released 2.6.0-pre3
2006-06-29 Miklos Szeredi
* Support in kernel module for file locking and interruption. The
same functionality is available in official kernels >= 2.6.18
2006-06-28 Miklos Szeredi
* Add POSIX file locking support
* Add request interruption
2006-06-06 Miklos Szeredi
* Add missing pthread_rwlock_destroy(). Patch from Remy Blank
2006-06-05 Remy Blank
* lib: canonicalize mount point in fuse_helper_opt_proc() so that
unmounting succeeds even if mount point was relative.
2006-06-04 Csaba Henk
* lib: fix emergency umount in helper.c when malloc fails.
(The way it was done would end up in a segfault.)
2006-06-01 Csaba Henk
* lib: adjust threading related compiler flags.
Switch to "-pthread" from "-lpthread" as that's the preferred
one on several platforms. Consulted with Terrence Cole and
Miklos Szeredi
2006-05-08 Miklos Szeredi
* lib: search fusermount in installation directory (bindir) as
well as in PATH.
2006-05-03 Miklos Szeredi
* lib: fix compilation if CLOCK_MONOTONIC is not defined.
Reported by Christian Magnusson
2006-04-23 Csaba Henk
* lib: make FreeBSD mount routine recognize if kernel features
backgrounded init and if it does, run the mount util in foreground
(similarly to Linux)
2006-04-21 Miklos Szeredi
* kernel: fix fput deadlock fix, the lockless solution could lead
to "VFS: busy inodes after umount..."
* kernel: fix race between checking and setting file->private_data
for the device. Found by Al Viro
2006-04-11 Miklos Szeredi
* kernel: remove request pool, instead allocate requests on
demand. Account the number of background requests, and if they go
over a limit, block the allocation of new requests.
* kernel: fix deadlock if backgrounded request holds the last
reference to the super block
* kernel: don't use fuse_reset_request() during direct I/O
2006-04-06 Csaba Henk
* lib: Let FreeBSD mount option parsing routine recognize "no"
prefixes for FUSE specific options as well
2006-04-01 Miklos Szeredi
* lib: Add missing rwlock initialization. Patch by Ryan Bradetich
2006-03-17 Miklos Szeredi
* API changes:
* fuse_main(), fuse_setup() and fuse_new() have an additionl
user_data parameter
* fuse_mount() returns a 'struct fuse_chan' pointer instead of a
file descriptor
* fuse_unmount() receives a 'struct fuse_chan' pointer. It
destroys the given channel
* fuse_teardown() no longer has a file descriptor parameter
* new exported functions: fuse_session_remove_chan(),
fuse_get_session(), fuse_daemonize()
* fuse_chan_recv() may now return a new channel which will be used
to send the reply
2006-03-16 Miklos Szeredi
* Released 2.6.0-pre2
2006-03-16 Miklos Szeredi
* Don't unmount if already unmounted. This fixes a problem seen
in the following situation: Lazy unmount a busy filesystem; Mount
a new one in top; When the first finally unmounts, the second also
unmounts. Reported by Franco Broi
2006-03-15 Miklos Szeredi
* lowlevel lib: use indirect function calls instead of a
switch/case construct. Besides increased efficiency it helps
maintainability & readability too. Patch from Florin Malita
2006-03-13 Miklos Szeredi
* kernel: replace global spinlock with a per-connection spinlock
2006-03-10 Miklos Szeredi
* Fix source compatibility breakage for fuse_unmount(). Report
from Yura Pakhuchiy
2006-03-02 Miklos Szeredi
* Fix O_ASYNC handling in fuse_dev_release(). From Jeff Dike
2006-03-01 Miklos Szeredi
* Add O_ASYNC and O_NONBLOCK support to FUSE device. Patch by
Jeff Dike
* Renamed fuse_chan_receive() to fuse_chan_recv() and changed
interface to return -errno in case of error.
2006-03-01 Csaba Henk
* libfuse: pass device file descriptor to fuse_unmount(), rewrite
FreeBSD implementation so that it uses libc (sysctl backed) instead
of an embdedded script (kmem backed). Adjust the control flow of
hello_ll so that device doesn't get closed before unmount attempt.
2006-02-25 Miklos Szeredi
* Lowlevel lib: return all-zero statvfs data if filesystem doesn't
implement method. This is needed on FreeBSD, and nicer on Linux
too. Highlevel lib already did this. Reported by Csaba Henk
* Fix negative entry handling. There was a bug, that negative
lookups with timeouts (nodeid == 0) returned -EIO.
2006-02-23 Miklos Szeredi
* Fix race between RELEASE and UNLINK, which might leave
.fuse_hidden* files around
2006-02-21 Miklos Szeredi
* fusexmp_fh: implement flush() method and call close() on the
open file descriptor. This is needed if used on an NFS
filesystem, which buffers data until file is closed. Franco Broi
spotted the situation when 'cp -p' failed to set the modification
time because of this.
2006-02-20 Miklos Szeredi
* Released 2.6.0-pre1
2006-02-19 Miklos Szeredi
* libfuse: fix use-after-free bug in interruptred reply_entry().
Patch from John Muir
* libfuse: fix wrong symbol versioning for fuse_mount. Debian bug
ID: 352631. Found by Stéphane Rosi
2006-02-17 Miklos Szeredi
* Lowlevel lib: Unify fuse_dirent_size() and fuse_add_dirent()
into a single function fuse_add_direntry(). This cleans up the
interface and makes it possible to do stacking.
2006-02-16 Miklos Szeredi
* Fix rare race betweeen abort and release caused by failed iget()
in fuse_create_open().
* Add 'ac_attr_timeout' option e.g. for filesystems which do their
own attribute caching.
2006-02-15 Miklos Szeredi
* Work around FreeBSD runtime linker "feature" which binds an old
version of a symbol to internal references if the symbol has more
than one version. This resulted in infinite recursion in
fuse_lowlevel_new_compat25().
2006-02-10 Csaba Henk
* Refine clock_gettime() querying so that linker options
shall be set as it's appropriate for the target platform.
2006-02-09 Miklos Szeredi
* Fix udev rule syntax. Reported by Nix
2006-02-08 Miklos Szeredi
* In some cases udev rule seems to be ineffective when installed
as 40-fuse.rules but work as 60-fuse.rules. Reported by John Hunt
2006-02-03 Miklos Szeredi
* Fix compilation when build directory is different from source
directory. Reported by Frédéric L. W. Meunier
2006-02-02 Miklos Szeredi
* Fix even bigger bug introduced in fix for request_end() on
2006-01-14. Reported by Gal Rosen
2006-01-30 Miklos Szeredi
* highlevel-lib: add 'auto_cache' option. This caches file data
based on modification time and size
2006-01-20 Miklos Szeredi
* Sanitize storage type and help message in mount_bsd.c. Patch
from Csaba Henk
* fuse_opt: add new helper constants FUSE_OPT_KEY_KEEP and
FUSE_OPT_KEY_DISCARD
* Add options 'max_readahead', 'sync_read' and 'async_read'
* Kernel ABI version 7.6:
* Negotiate the 'max_readahead' value and 'async_read' flags with
userspace in the INIT method
* Add connection info to ->init() methods to both lowlevel and
highlevel API
* Fall back to synchronous read() behavior if either library or
userspace filesystem is using the old interface version. This is
needed so non-updated filesystems won't be confused by the
different read() behavior
2006-01-19 Miklos Szeredi
* lib: if "fsname=" option was given, pass it to fusermount
* fuse_opt: add new fuse_opt_insert_arg() function, which is
needed by filesystems to implement some argument manipulations
correctly
* fuse_opt: fix memory leak in handling "--" option
2006-01-18 Miklos Szeredi
* kernel: fix detection of case when fuse is not configured into
the kernel either as module or built-in
* fuse_opt.h: fix incompatibility with C++ compilers by renaming
'template' structure member to 'templ'. Reported by Takashi Iwai
* fuse.h: fix compatibility bugs. Patch by Yura Pakhuchiy
* kernel: support version 2.6.16 (i_sem -> i_mutex)
2006-01-16 Miklos Szeredi
* Added (again) asynchronous readpages support
* Each connection now shows up under /sys/fs/fuse/connections
* Connection attributes exported to sysfs: 'waiting' number of
waiting requests; 'abort' abort the connection
* Connection may be aborted through either the sysfs interface or
with 'umount -f mountpoint'
2006-01-14 Miklos Szeredi
* Released 2.5.0
2006-01-14 Miklos Szeredi
* kernel: fix a couple of bugs
* Order of request_end() and fuse_copy_finish() was wrong.
Posthumous note: Franco Broi managed to exploit this, though it
seemed quite impossible
* request_end() used request pointer after decrementing refcount
* Clearing ->connected or ->mounted connection flags could race
with setting other bitfields not protected with a lock
2006-01-10 Miklos Szeredi
* kernel: add necessary compile flags for 2.4.X/x86_64.
Report from Sean Ziegeler
2006-01-09 Miklos Szeredi
* Released 2.5.0-pre2
2006-01-09 Miklos Szeredi
* Applied patch from Csaba Henk, to update mount_bsd to new
fuse_mount() semantics
* Ignore auto,noauto,... options in mount.fuse. Reported by Frank
Steiner and Don Taber
* fusermount: add 'dirsync' mount option
2006-01-07 Miklos Szeredi
* Improved help reporting and added version reporting to library
2006-01-06 Miklos Szeredi
* Change working directory to "/" even if running in the
foreground. Patch from Jonathan Brandmeyer
* Changed lots of functions to use 'struct fuse_args' instead of
separate argc and argv
* Added fuse_parse_cmdline(), fuse_set_signal_handlers() and
fuse_remove_signal_handlers() functions, so that it's now pretty
easy to get all the functionality of fuse_main() with a filesystem
using the lowlevel API.
2006-01-02 Miklos Szeredi
* mount.fuse: the 'user' option should be ignored. Report and
solution from Mattd.
* mount.fuse: export PATH in the right place. Report and patch
from Hannes Schweizer
2005-12-16 Miklos Szeredi
* Clean up the option parsing interface slightly, by creating an
"argument list" structure, that contains the argument vector and
count
2005-12-15 Miklos Szeredi
* fusermount: check if /mnt/mtab is a symlink and don't modify it
in that case
* kernel: simplify request size limiting. INIT only contains
maximum write size, maximum path component size remains fixed at
1024 bytes, and maximum xattr size depends on read buffer.
2005-12-14 Miklos Szeredi
* Fix readdir() failure on x86_64, of 32bit programs compiled
without largefile support. Bug report and help from Anthony
Kolasny
* If lookup returns invalid mode, return -EIO instead of creating
a regular file
* Add current output argument vector to option processing
function
2005-12-12 Miklos Szeredi
* Fix stale code in ifdef FreeBSD. Patch from Csaba Henk
2005-12-09 Miklos Szeredi
* Released 2.5.0-pre1
2005-12-09 Miklos Szeredi
* libfuse: added option parsing interface, defined in
.
2005-12-07 Miklos Szeredi