FUSE makes it possible to implement a filesystem in a userspace program. Features include: simple yet comprehensive API, secure mounting by non-root users, support for 2.4 and 2.6 Linux kernels, multi-threaded operation. etc...
FUSE makes it possible to implement a filesystem in a userspace program. Features include: simple yet comprehensive API, secure mounting by non-root users, support for 2.4 and 2.6 Linux kernels, multi-threaded operation. etc...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<title>fuse-2.8.3 release notes</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<pre> <b>Notes:</b>
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
</pre>
<hr>
<pre> <b>Changes:</b>
2010-02-01 Miklos Szeredi <miklos@szeredi.hu>
* Released 2.8.3
2010-02-01 Miklos Szeredi <miklos@szeredi.hu>
* 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 <miklos@szeredi.hu>
* Released 2.8.2
2010-01-21 Miklos Szeredi <miklos@szeredi.hu>
* 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 <miklos@szeredi.hu>
* Fix compile error on FreeBSD. Patch by Jay Sullivan
2009-12-17 Miklos Szeredi <miklos@szeredi.hu>
* 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 <miklos@szeredi.hu>
* Released 2.8.1
2009-08-25 Miklos Szeredi <miklos@szeredi.hu>
* Fix missing versioned symbol fuse_get_context@FUSE_2.2
2009-08-18 Miklos Szeredi <miklos@szeredi.hu>
* Released 2.8.0
2009-08-18 Miklos Szeredi <miklos@szeredi.hu>
* Add missing fuse_session_data to versionscript
* Make sure all global symbols are prefixed with "fuse_" or "cuse_"
2009-07-16 Miklos Szeredi <miklos@szeredi.hu>
* 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 <miklos@szeredi.hu>
* 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 <miklos@szeredi.hu>
* Released 2.8.0-pre3
2009-06-19 Miklos Szeredi <miklos@szeredi.hu>
* 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 <miklos@szeredi.hu>
* 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 <miklos@szeredi.hu>
* Add missing fuse_reply_bmap to versionscript. Debian
Bug#531329. Reported by Goswin Brederlow
2009-05-27 Miklos Szeredi <miklos@szeredi.hu>
* 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 <miklos@szeredi.hu>
* Add FUSE_CAP_EXPORT_SUPPORT to fuse_common.h
2009-05-08 Miklos Szeredi <miklos@szeredi.hu>
* Fix missing newlines in some printfs
* Fix 'make install-strip'. Reported by Dominick Layfield
2009-01-05 Miklos Szeredi <miklos@szeredi.hu>
* Released 2.8.0-pre2
2008-12-08 Miklos Szeredi <miklos@szeredi.hu>
* Implement poll support. Patch by Tejun Heo
* Add missing setattr flags to <fuse_lowlevel.h>.
* Only pass valid flags to ->setattr().
2008-12-05 Miklos Szeredi <miklos@szeredi.hu>
* 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 <miklos@szeredi.hu>
* 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 <miklos@szeredi.hu>
* lowlevel lib: fix deadlock if fuse_reply_* is called from the
interrupt handling function. Reported by Tero Marttila
2008-10-16 Miklos Szeredi <miklos@szeredi.hu>
* 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 <miklos@szeredi.hu>
* Pass current file flags to read and write operations
2008-07-24 Miklos Szeredi <miklos@szeredi.hu>
* Clean up debug output in highlevel lib
2008-07-10 Miklos Szeredi <miklos@szeredi.hu>
* Released 2.8.0-pre1
2008-06-27 Miklos Szeredi <miklos@szeredi.hu>
* 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 <miklos@szeredi.hu>
* Remove fuse kernel module sources. Linux 2.6.27 will support
NFS exporting.
2008-06-10 Miklos Szeredi <miklos@szeredi.hu>
* Fix theoretical infinite loops in libfuse. Reported by Szabolcs
Szakacsits
* Fix missing <sys/param.h> include for PATH_MAX. Reported by
Szabolcs Szakacsits
2008-05-23 Miklos Szeredi <miklos@szeredi.hu>
* Fix mounting over symlink. Reported by Szabolcs Szakacsits
2008-05-09 Miklos Szeredi <miklos@szeredi.hu>
* 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 <miklos@szeredi.hu>
* 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 <miklos@szeredi.hu>
* Update error message for missing mountpoint parameter. Reported
by Allen Pulsifer
2008-04-04 Miklos Szeredi <miklos@szeredi.hu>
* Print library version information to debug output
* Highlevel lib: don't limit paths to 4095 characters
2008-03-25 Miklos Szeredi <miklos@szeredi.hu>
* Fix memory leaks on mount. Patch by Szabolcs Szakacsits
2008-03-19 Miklos Szeredi <miklos@szeredi.hu>
* Fix missing pthread_mutex_destroy in error path of
fuse_lib_opendir(). Patch by Szabolcs Szakacsits
2008-03-07 Miklos Szeredi <miklos@szeredi.hu>
* 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 <miklos@szeredi.hu>
* 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 <csaba.henk@creo.hu>
* 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 <csaba.henk@creo.hu>
* 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 <csaba.henk@creo.hu>
* lib/mount_bsd.c: close device before unmount
(cf. lib/mount.c rev. 1.43) and fix some warnings
2007-12-23 Miklos Szeredi <miklos@szeredi.hu>
* Fix './configure --disable-static'. Patch from Ismail Dönmez
</pre>
</body>
</html>