1 2006-09-30 Miklos Szeredi <miklos@szeredi.hu>
5 * Drop support for kernels earlier than 2.6.9. Kernel module from
6 previous (2.5.x) release can be used with library from this
9 * In fuse_dentry_revalidate() use dget_parent() instead of
10 dereferencing d_parent, since there's no protection against parent
11 changing and going away
13 * Protect nlookup from concurrent updates
15 * In lookup if a directory alias exists but is unused,
16 then get rid of it, otherwise return -EBUSY.
18 * In mkdir if a directory alias exists, return success, but leave
19 dentry negative. In reality this could happen if a remote rename
20 immediately followed the mkdir.
22 * Don't BUG in fuse_iget() if multiple retries are needed to get a
23 good inode. This could happen if several lookups are racing for
26 2006-09-29 Miklos Szeredi <miklos@szeredi.hu>
28 * Fix compilation on 2.6.9. Report from Troy Ayers
30 2006-09-27 Miklos Szeredi <miklos@szeredi.hu>
32 * Fix Oops in fuse_readpages(). Reported by David Shaw
34 2006-09-24 Csaba Henk <csaba.henk@creo.hu>
36 * Add support for nanosec times on FreeBSD
38 * Fix FreeBSD compatibility issues
40 2006-09-23 Miklos Szeredi <miklos@szeredi.hu>
42 * Fix one more compatibility bug. Thanks to Ricardo Correia
44 * Fix utimens compilation with uClibc. Patch from Jamie Guinan
46 2006-09-22 Miklos Szeredi <miklos@szeredi.hu>
48 * Fixed several compatibility bugs in low level interface.
49 Reported by Ricardo Correia
51 * Add workaround for ARM caching bug
53 2006-09-16 Miklos Szeredi <miklos@szeredi.hu>
55 * Rename new utimes() method to more logical utimens()
57 2006-09-14 Miklos Szeredi <miklos@szeredi.hu>
59 * Fuse tried to unlink already unlinked hidden files. Bug
60 reported by Milan Svoboda
62 2006-09-10 Miklos Szeredi <miklos@szeredi.hu>
66 2006-09-10 Miklos Szeredi <miklos@szeredi.hu>
68 * kernel: Fix unlock on close for kernels < 2.6.18
70 * Add ulockmgr library & server. This can be used for handling
71 file locking requests either directly from libfuse or over a
72 network, etc. This first version is not optimized and the number
73 of file descriptors it uses may get out of hand
75 2006-09-07 Miklos Szeredi <miklos@szeredi.hu>
77 * lib: Add interrupt support to high level library, which may be
78 enabled with the 'intr' mount option.
80 * When an operation is interrupted the thread handling that
81 operation will receive SIGUSR1 (or other signal specified with the
82 'intr_signal=N' option). The library installs a no-op signal
83 handler for this signal, unless there's already a handler
86 * The filesystem may query interrupt status (regardless of 'intr')
87 with the fuse_interrupted() function.
89 * mount.fuse: initialize $HOME if not set. Report from Sven Goldt
91 2006-09-03 Miklos Szeredi <miklos@szeredi.hu>
93 * lib: Multithreaded loop now allows unlimited number of threads.
94 This is needed for locking operations which may block
95 indefinitely. Also the kernel now doesn't limit the number of
96 outstanding requests so the library shouldn't do so either.
98 2006-09-01 Miklos Szeredi <miklos@szeredi.hu>
100 * Fix recursive lock bug in interrupt handling
102 * Add utimes() method to highlevel interface, which supports
103 setting times with nanosecond resolution
105 2006-08-18 Miklos Szeredi <miklos@szeredi.hu>
107 * kernel: fix page leak if fuse_readpages() failed in it's
108 initialization. Bug found and original patch from Alexander
111 * For linux kernels >=2.6.18 (2.6.19 if using the fuse module from
112 the kernel tree) the statfs method will receive the path within
113 the filesystem on which the stat(v)fs syscall was called
115 * fusermount: try to modprobe fuse module if invoked by root and
116 unable to open device. This is needed with udev, since the device
117 node will be created only when the module is inserted, hence
118 module autoloading won't work. Reported by Szakacsits Szabolcs
120 2006-07-30 Miklos Szeredi <miklos@szeredi.hu>
122 * fusermount: if selinux is active, restore the original file's
123 security context in unmount_rename(). Redhat bugzilla id 188561.
124 Patch from Yves Perrenoud
126 * Add POSIX file locking operation to high level library
128 * Initialize context for unlink of hidden files on umount. Bug
129 reported by Tim Stoakes
131 2006-07-14 Miklos Szeredi <miklos@szeredi.hu>
133 * Multiple release() calls can race with each other, resulting in
134 the hidden file being deleted before the last release finishes.
135 Bug found and patch tested by Mark Huijgen
137 2006-07-05 Miklos Szeredi <miklos@szeredi.hu>
139 * fusermount: if /dev/fuse doesn't exist, suggest modprobing fuse;
140 this makes sense on systems using udev. Reported by Szakacsits
143 2006-06-29 Miklos Szeredi <miklos@szeredi.hu>
145 * Released 2.6.0-pre3
147 2006-06-29 Miklos Szeredi <miklos@szeredi.hu>
149 * Support in kernel module for file locking and interruption. The
150 same functionality is available in official kernels >= 2.6.18
152 2006-06-28 Miklos Szeredi <miklos@szeredi.hu>
154 * Add POSIX file locking support
156 * Add request interruption
158 2006-06-06 Miklos Szeredi <miklos@szeredi.hu>
160 * Add missing pthread_rwlock_destroy(). Patch from Remy Blank
162 2006-06-05 Remy Blank <remy.blank@pobox.com>
164 * lib: canonicalize mount point in fuse_helper_opt_proc() so that
165 unmounting succeeds even if mount point was relative.
167 2006-06-04 Csaba Henk <csaba.henk@creo.hu>
169 * lib: fix emergency umount in helper.c when malloc fails.
170 (The way it was done would end up in a segfault.)
172 2006-06-01 Csaba Henk <csaba.henk@creo.hu>
174 * lib: adjust threading related compiler flags.
175 Switch to "-pthread" from "-lpthread" as that's the preferred
176 one on several platforms. Consulted with Terrence Cole and
179 2006-05-08 Miklos Szeredi <miklos@szeredi.hu>
181 * lib: search fusermount in installation directory (bindir) as
184 2006-05-03 Miklos Szeredi <miklos@szeredi.hu>
186 * lib: fix compilation if CLOCK_MONOTONIC is not defined.
187 Reported by Christian Magnusson
189 2006-04-23 Csaba Henk <csaba.henk@creo.hu>
191 * lib: make FreeBSD mount routine recognize if kernel features
192 backgrounded init and if it does, run the mount util in foreground
195 2006-04-21 Miklos Szeredi <miklos@szeredi.hu>
197 * kernel: fix fput deadlock fix, the lockless solution could lead
198 to "VFS: busy inodes after umount..."
200 * kernel: fix race between checking and setting file->private_data
201 for the device. Found by Al Viro
203 2006-04-11 Miklos Szeredi <miklos@szeredi.hu>
205 * kernel: remove request pool, instead allocate requests on
206 demand. Account the number of background requests, and if they go
207 over a limit, block the allocation of new requests.
209 * kernel: fix deadlock if backgrounded request holds the last
210 reference to the super block
212 * kernel: don't use fuse_reset_request() during direct I/O
214 2006-04-06 Csaba Henk <csaba.henk@creo.hu>
216 * lib: Let FreeBSD mount option parsing routine recognize "no"
217 prefixes for FUSE specific options as well
219 2006-04-01 Miklos Szeredi <miklos@szeredi.hu>
221 * lib: Add missing rwlock initialization. Patch by Ryan Bradetich
223 2006-03-17 Miklos Szeredi <miklos@szeredi.hu>
227 * fuse_main(), fuse_setup() and fuse_new() have an additionl
230 * fuse_mount() returns a 'struct fuse_chan' pointer instead of a
233 * fuse_unmount() receives a 'struct fuse_chan' pointer. It
234 destroys the given channel
236 * fuse_teardown() no longer has a file descriptor parameter
238 * new exported functions: fuse_session_remove_chan(),
239 fuse_get_session(), fuse_daemonize()
241 * fuse_chan_recv() may now return a new channel which will be used
244 2006-03-16 Miklos Szeredi <miklos@szeredi.hu>
246 * Released 2.6.0-pre2
248 2006-03-16 Miklos Szeredi <miklos@szeredi.hu>
250 * Don't unmount if already unmounted. This fixes a problem seen
251 in the following situation: Lazy unmount a busy filesystem; Mount
252 a new one in top; When the first finally unmounts, the second also
253 unmounts. Reported by Franco Broi
255 2006-03-15 Miklos Szeredi <miklos@szeredi.hu>
257 * lowlevel lib: use indirect function calls instead of a
258 switch/case construct. Besides increased efficiency it helps
259 maintainability & readability too. Patch from Florin Malita
261 2006-03-13 Miklos Szeredi <miklos@szeredi.hu>
263 * kernel: replace global spinlock with a per-connection spinlock
265 2006-03-10 Miklos Szeredi <miklos@szeredi.hu>
267 * Fix source compatibility breakage for fuse_unmount(). Report
270 2006-03-02 Miklos Szeredi <miklos@szeredi.hu>
272 * Fix O_ASYNC handling in fuse_dev_release(). From Jeff Dike
274 2006-03-01 Miklos Szeredi <miklos@szeredi.hu>
276 * Add O_ASYNC and O_NONBLOCK support to FUSE device. Patch by
279 * Renamed fuse_chan_receive() to fuse_chan_recv() and changed
280 interface to return -errno in case of error.
282 2006-03-01 Csaba Henk <csaba.henk@creo.hu>
284 * libfuse: pass device file descriptor to fuse_unmount(), rewrite
285 FreeBSD implementation so that it uses libc (sysctl backed) instead
286 of an embdedded script (kmem backed). Adjust the control flow of
287 hello_ll so that device doesn't get closed before unmount attempt.
289 2006-02-25 Miklos Szeredi <miklos@szeredi.hu>
291 * Lowlevel lib: return all-zero statvfs data if filesystem doesn't
292 implement method. This is needed on FreeBSD, and nicer on Linux
293 too. Highlevel lib already did this. Reported by Csaba Henk
295 * Fix negative entry handling. There was a bug, that negative
296 lookups with timeouts (nodeid == 0) returned -EIO.
298 2006-02-23 Miklos Szeredi <miklos@szeredi.hu>
300 * Fix race between RELEASE and UNLINK, which might leave
301 .fuse_hidden* files around
303 2006-02-21 Miklos Szeredi <miklos@szeredi.hu>
305 * fusexmp_fh: implement flush() method and call close() on the
306 open file descriptor. This is needed if used on an NFS
307 filesystem, which buffers data until file is closed. Franco Broi
308 spotted the situation when 'cp -p' failed to set the modification
309 time because of this.
311 2006-02-20 Miklos Szeredi <miklos@szeredi.hu>
313 * Released 2.6.0-pre1
315 2006-02-19 Miklos Szeredi <miklos@szeredi.hu>
317 * libfuse: fix use-after-free bug in interruptred reply_entry().
320 * libfuse: fix wrong symbol versioning for fuse_mount. Debian bug
321 ID: 352631. Found by Stéphane Rosi
323 2006-02-17 Miklos Szeredi <miklos@szeredi.hu>
325 * Lowlevel lib: Unify fuse_dirent_size() and fuse_add_dirent()
326 into a single function fuse_add_direntry(). This cleans up the
327 interface and makes it possible to do stacking.
329 2006-02-16 Miklos Szeredi <miklos@szeredi.hu>
331 * Fix rare race betweeen abort and release caused by failed iget()
332 in fuse_create_open().
334 * Add 'ac_attr_timeout' option e.g. for filesystems which do their
335 own attribute caching.
337 2006-02-15 Miklos Szeredi <miklos@szeredi.hu>
339 * Work around FreeBSD runtime linker "feature" which binds an old
340 version of a symbol to internal references if the symbol has more
341 than one version. This resulted in infinite recursion in
342 fuse_lowlevel_new_compat25().
344 2006-02-10 Csaba Henk <csaba.henk@creo.hu>
346 * Refine clock_gettime() querying so that linker options
347 shall be set as it's appropriate for the target platform.
349 2006-02-09 Miklos Szeredi <miklos@szeredi.hu>
351 * Fix udev rule syntax. Reported by Nix
353 2006-02-08 Miklos Szeredi <miklos@szeredi.hu>
355 * In some cases udev rule seems to be ineffective when installed
356 as 40-fuse.rules but work as 60-fuse.rules. Reported by John Hunt
358 2006-02-03 Miklos Szeredi <miklos@szeredi.hu>
360 * Fix compilation when build directory is different from source
361 directory. Reported by Frédéric L. W. Meunier
363 2006-02-02 Miklos Szeredi <miklos@szeredi.hu>
365 * Fix even bigger bug introduced in fix for request_end() on
366 2006-01-14. Reported by Gal Rosen
368 2006-01-30 Miklos Szeredi <miklos@szeredi.hu>
370 * highlevel-lib: add 'auto_cache' option. This caches file data
371 based on modification time and size
373 2006-01-20 Miklos Szeredi <miklos@szeredi.hu>
375 * Sanitize storage type and help message in mount_bsd.c. Patch
378 * fuse_opt: add new helper constants FUSE_OPT_KEY_KEEP and
381 * Add options 'max_readahead', 'sync_read' and 'async_read'
383 * Kernel ABI version 7.6:
385 * Negotiate the 'max_readahead' value and 'async_read' flags with
386 userspace in the INIT method
388 * Add connection info to ->init() methods to both lowlevel and
391 * Fall back to synchronous read() behavior if either library or
392 userspace filesystem is using the old interface version. This is
393 needed so non-updated filesystems won't be confused by the
394 different read() behavior
396 2006-01-19 Miklos Szeredi <miklos@szeredi.hu>
398 * lib: if "fsname=" option was given, pass it to fusermount
400 * fuse_opt: add new fuse_opt_insert_arg() function, which is
401 needed by filesystems to implement some argument manipulations
404 * fuse_opt: fix memory leak in handling "--" option
406 2006-01-18 Miklos Szeredi <miklos@szeredi.hu>
408 * kernel: fix detection of case when fuse is not configured into
409 the kernel either as module or built-in
411 * fuse_opt.h: fix incompatibility with C++ compilers by renaming
412 'template' structure member to 'templ'. Reported by Takashi Iwai
414 * fuse.h: fix compatibility bugs. Patch by Yura Pakhuchiy
416 * kernel: support version 2.6.16 (i_sem -> i_mutex)
418 2006-01-16 Miklos Szeredi <miklos@szeredi.hu>
420 * Added (again) asynchronous readpages support
422 * Each connection now shows up under /sys/fs/fuse/connections
424 * Connection attributes exported to sysfs: 'waiting' number of
425 waiting requests; 'abort' abort the connection
427 * Connection may be aborted through either the sysfs interface or
428 with 'umount -f mountpoint'
430 2006-01-14 Miklos Szeredi <miklos@szeredi.hu>
434 2006-01-14 Miklos Szeredi <miklos@szeredi.hu>
436 * kernel: fix a couple of bugs
438 * Order of request_end() and fuse_copy_finish() was wrong.
439 Posthumous note: Franco Broi managed to exploit this, though it
440 seemed quite impossible
442 * request_end() used request pointer after decrementing refcount
444 * Clearing ->connected or ->mounted connection flags could race
445 with setting other bitfields not protected with a lock
447 2006-01-10 Miklos Szeredi <miklos@szeredi.hu>
449 * kernel: add necessary compile flags for 2.4.X/x86_64.
450 Report from Sean Ziegeler
452 2006-01-09 Miklos Szeredi <miklos@szeredi.hu>
454 * Released 2.5.0-pre2
456 2006-01-09 Miklos Szeredi <miklos@szeredi.hu>
458 * Applied patch from Csaba Henk, to update mount_bsd to new
459 fuse_mount() semantics
461 * Ignore auto,noauto,... options in mount.fuse. Reported by Frank
462 Steiner and Don Taber
464 * fusermount: add 'dirsync' mount option
466 2006-01-07 Miklos Szeredi <miklos@szeredi.hu>
468 * Improved help reporting and added version reporting to library
470 2006-01-06 Miklos Szeredi <miklos@szeredi.hu>
472 * Change working directory to "/" even if running in the
473 foreground. Patch from Jonathan Brandmeyer
475 * Changed lots of functions to use 'struct fuse_args' instead of
476 separate argc and argv
478 * Added fuse_parse_cmdline(), fuse_set_signal_handlers() and
479 fuse_remove_signal_handlers() functions, so that it's now pretty
480 easy to get all the functionality of fuse_main() with a filesystem
481 using the lowlevel API.
483 2006-01-02 Miklos Szeredi <miklos@szeredi.hu>
485 * mount.fuse: the 'user' option should be ignored. Report and
488 * mount.fuse: export PATH in the right place. Report and patch
489 from Hannes Schweizer
491 2005-12-16 Miklos Szeredi <miklos@szeredi.hu>
493 * Clean up the option parsing interface slightly, by creating an
494 "argument list" structure, that contains the argument vector and
497 2005-12-15 Miklos Szeredi <miklos@szeredi.hu>
499 * fusermount: check if /mnt/mtab is a symlink and don't modify it
502 * kernel: simplify request size limiting. INIT only contains
503 maximum write size, maximum path component size remains fixed at
504 1024 bytes, and maximum xattr size depends on read buffer.
506 2005-12-14 Miklos Szeredi <miklos@szeredi.hu>
508 * Fix readdir() failure on x86_64, of 32bit programs compiled
509 without largefile support. Bug report and help from Anthony
512 * If lookup returns invalid mode, return -EIO instead of creating
515 * Add current output argument vector to option processing
518 2005-12-12 Miklos Szeredi <miklos@szeredi.hu>
520 * Fix stale code in ifdef FreeBSD. Patch from Csaba Henk
522 2005-12-09 Miklos Szeredi <miklos@szeredi.hu>
524 * Released 2.5.0-pre1
526 2005-12-09 Miklos Szeredi <miklos@szeredi.hu>
528 * libfuse: added option parsing interface, defined in
531 2005-12-07 Miklos Szeredi <miklos@szeredi.hu>
533 * Return EIO for file operations (read, write, fsync, flush) on
534 open files whose inode has become "bad". Inodes will be marked
535 "bad" if their type changes. Bug report by Csaba Henk
537 2005-12-06 Miklos Szeredi <miklos@szeredi.hu>
539 * Use bigger request buffer size. write() did not work on archs
540 with > 4k page size, Bug report by Mark Haney
544 * Extend INIT reply with data size limits
546 2005-12-02 Miklos Szeredi <miklos@szeredi.hu>
548 * Fix memory leak in fuse_read_cmd()/fuse_process_cmd(). Bug
549 reported by Vincenzo Ciancia
551 * Handle exit-by-umount in fuse_read_cmd()
553 2005-11-29 Miklos Szeredi <miklos@szeredi.hu>
555 * Check if '-msoft-float' option is supported by compiler when
556 configuring for a 2.4.x kernel. Bug report by Mark Haney
558 * In multithreaded loop send a TERM signal to the main thread if
559 one of the other threads exit. Needed on FreeBSD for a clean exit
560 on umount. Should not cause any harm on Linux either
562 2005-11-28 Miklos Szeredi <miklos@szeredi.hu>
564 * Fix bug in 32-bit file handle compatibility
566 2005-11-27 Miklos Szeredi <miklos@szeredi.hu>
568 * Block TERM, INT, HUP and QUIT signals in all but the main
569 thread. According to POSIX it's not specified which thread will
570 receive these signals.
574 * Check for directory aliasing on mkdir, not just on lookup
576 * Check for special node ID values in create+open operation
578 * Sync with -mm: readv, writev, aio_read and aio_write methods
579 added to file operations
581 * Cleanups: lookup code, page offset calculation
583 * ABI stepped to 7.4, changes:
585 * frsize member added to fuse_kstatfs structure
587 * added support for negative entry caching: on lowlevel API if
588 fuse_entry_param::ino is set to zero in reply to a lookup request,
589 the kernel will cache the dentry for the specified amount of time.
591 * libfuse: added 'negative_timeout' option: specifies how much
592 negative entries should be cached. Default is zero, to be
593 compatible with prior versions
595 2005-11-22 Miklos Szeredi <miklos@szeredi.hu>
597 * Add detection of mainline FUSE code in running kernel
599 2005-11-21 Miklos Szeredi <miklos@szeredi.hu>
601 * Don't use async cancelation in multithreaded loop. This makes
602 it more portable to systems where read() is not async cancel safe.
603 Report from Andriy Gapon
605 2005-11-20 Miklos Szeredi <miklos@szeredi.hu>
607 * Warn if API version 11 compatibility is requested
609 2005-11-17 Miklos Szeredi <miklos@szeredi.hu>
613 * fusermount: don't allow mountpoints with '\n', '\t', or '\\' in
614 them, because it corrupts /etc/mtab. Found by Thomas Biege
617 * libfuse: don't use system() to invoke 'fusermount -u ...'
618 because it breaks mountpoints with spaces in them into multiple
621 2005-11-16 Miklos Szeredi <miklos@szeredi.hu>
623 * Merge library part of FreeBSD port. Patch by Csaba Henk
625 2005-11-11 Miklos Szeredi <miklos@szeredi.hu>
627 * Use 64bit type for file handle, so the full range supported by
628 the kernel interface is available to applications
630 2005-11-10 Miklos Szeredi <miklos@szeredi.hu>
632 * Moved mountpoint argument checking from fuse_parse_cmdline() to
633 fuse_mount() in preparation to FreeBSD merge.
635 2005-11-08 Miklos Szeredi <miklos@szeredi.hu>
637 * Remove unneeded close() from fuse_teardown(). Spotted by Csaba
640 2005-11-07 Miklos Szeredi <miklos@szeredi.hu>
642 * Make the statfs change backwards compatible.
644 2005-11-06 Miklos Szeredi <miklos@szeredi.hu>
646 * Change ->statfs() method to use 'struct statvfs' instead of
647 'struct statfs'. This makes the API more portable since statvfs()
650 2005-10-28 Miklos Szeredi <miklos@szeredi.hu>
652 * Add fgetattr() method, which currently will only be called after
653 a successful call to a create() method.
655 2005-10-26 Miklos Szeredi <miklos@szeredi.hu>
657 * Change kernel ABI version to 7.3
659 * Add ACCESS operation. This is called from the access() system
660 call if 'default_permissions' mount option is not given, and is
661 not called on kernels 2.4.*
663 * Add atomic CREATE+OPEN operation. This will only work with
664 2.6.15 (presumably) or later Linux kernels.
666 * Add ftruncate() method. This will only work with 2.6.15
667 (presumably) or later Linux kernels.
669 * Fix kernel module compile if kernel source and build directories
670 differ. Report and initial patch by John Eastman
672 2005-10-18 Miklos Szeredi <miklos@szeredi.hu>
674 * lib: optimize buffer reallocation in fill_dir.
676 2005-10-17 Miklos Szeredi <miklos@szeredi.hu>
680 2005-10-14 Miklos Szeredi <miklos@szeredi.hu>
682 * libfuse: add debug for write result (by Shaun Jackman) and
683 warnings for too large read/write result
685 2005-10-11 Miklos Szeredi <miklos@szeredi.hu>
687 * Spelling fixes, thanks to Ioannis Barkas
689 2005-10-10 Miklos Szeredi <miklos@szeredi.hu>
691 * fuse_common.h: use extern "C". Thanks to Valient Gough for the
694 2005-10-07 Miklos Szeredi <miklos@szeredi.hu>
696 * highlevel-lib: init() and destroy() methods didn't have an
697 initialized fuse_context. Bug reported by Tim Stoakes
699 2005-10-04 Miklos Szeredi <miklos@szeredi.hu>
703 2005-10-03 Miklos Szeredi <miklos@szeredi.hu>
705 * Add documentation to fuse_lowlevel.h
709 * Remove definitions of unused FATTR_CTIME / FUSE_SET_ATTR_CTIME
711 * Move fuse_mount() and fuse_unmount() to fuse_common.h
713 * Change the return type of fuse_reply_none() from int to void.
715 2005-09-30 Miklos Szeredi <miklos@szeredi.hu>
717 * kernel: NFS exporting leaked dentries. Bug found and fixed by
720 2005-09-29 Miklos Szeredi <miklos@szeredi.hu>
722 * fusermount: fix error message, when unable to open /dev/fuse.
723 Report by Balázs Pozsár
725 2005-09-28 Miklos Szeredi <miklos@szeredi.hu>
727 * UClibc fixes from Christian Magnusson
729 2005-09-27 Miklos Szeredi <miklos@szeredi.hu>
731 * Added NAME="%k" to util/udev.rules. Fix by Mattias Wadman.
733 2005-09-26 Miklos Szeredi <miklos@szeredi.hu>
737 2005-09-26 Miklos Szeredi <miklos@szeredi.hu>
739 * fusermount: allow user umount in the case when /etc/mtab is a
740 symlink to /proc/mounts. Reported by Balázs Pozsár.
742 2005-09-23 Miklos Szeredi <miklos@szeredi.hu>
744 * Check for special node ID values in lookup and creation
746 2005-09-22 Miklos Szeredi <miklos@szeredi.hu>
748 * Slight optimization in returning EINVAL error in case of an open
751 2005-09-20 Miklos Szeredi <miklos@szeredi.hu>
753 * Remove '--enable-auto-modprobe' configure flag. Module
754 auto-loading is now handled by the kernel.
756 2005-09-15 Miklos Szeredi <miklos@szeredi.hu>
758 * Install UDEV rule file, so /dev/fuse is created with mode 0666.
759 Help from Jens M. Noedler.
761 2005-09-14 Miklos Szeredi <miklos@szeredi.hu>
763 * Add memory cleanup on thread exit
765 2005-09-13 Miklos Szeredi <miklos@szeredi.hu>
767 * Set umask to zero in fusexmp and fusexmp_fh, so that
768 files/directories are created with the requested mode.
770 2005-09-12 Miklos Szeredi <miklos@szeredi.hu>
772 * Don't ignore read error in multithreaded loop
774 2005-09-08 Miklos Szeredi <miklos@szeredi.hu>
776 * Released 2.4.0-pre2
778 2005-09-08 Miklos Szeredi <miklos@szeredi.hu>
780 * Revert lock and access operations. Postpone these until 2.5.
782 2005-09-02 Miklos Szeredi <miklos@szeredi.hu>
784 * Fix compile warning on 2.6.13 and later
786 * Fix compilation on old kernels
788 2005-08-19 Miklos Szeredi <miklos@szeredi.hu>
790 * lib: always refresh directory contents after rewinddir() to
791 conform to SUS. Bug found by John Muir.
793 2005-08-15 Miklos Szeredi <miklos@szeredi.hu>
795 * Released 2.4.0-pre1
797 2005-08-14 Miklos Szeredi <miklos@szeredi.hu>
799 * lib: cleaned up (or messed up, depending on your POV) the low
800 level library API. Hopefully this is close to the final form.
802 2005-08-05 Miklos Szeredi <miklos@szeredi.hu>
804 * fusermount: don't allow empty mountpoint argument, which defeats
805 automatic umounting in fuse_main(). Bugreport by Václav Jůza
807 2005-08-03 Miklos Szeredi <miklos@szeredi.hu>
809 * fix warnings in fuse.h and fuse_lowlevel.h if -Wshadow compiler
810 option is used (Paul Alfille).
812 2005-08-02 Miklos Szeredi <miklos@szeredi.hu>
814 * highlevel-lib: added mount options "attr_timeout" and
815 "entry_timeout". These options control the length of time file
816 attributes and entries (names) are cached. Both default to 1.0
819 * kernel: correctly handle zero timeout for attributes and entries
821 2005-08-01 Miklos Szeredi <miklos@szeredi.hu>
823 * Added missing symbols to versionscript (Joshua J. Berry)
825 * kernel: implement two flags, open can set: 'direct_io' and
826 'keep_cache'. These correspond exactly to mount options
827 'direct_io' and 'kernel_cache', but allow a per-open setting.
829 * Move 'direct_io' and 'kernel_cache' mount option handling to
830 userspace. For both mount options, if the option is given, then
831 the respective open flag is set, otherwise the open flag is left
832 unmodified (so the filesystem can set it).
834 * lib (highlevel): make open method optional
836 2005-07-28 Miklos Szeredi <miklos@szeredi.hu>
838 * kernel: invalidate attributes for read/readdir/readlink
841 * kernel: detect newer UML kernels
843 2005-07-26 Miklos Szeredi <miklos@szeredi.hu>
845 * Make the installation path of fuse.ko and mount.fuse
846 configurable through INSTALL_MOD_PATH and MOUNT_FUSE_PATH
847 environment variables. Requirement and help from Csaba Henk.
849 2005-07-22 Miklos Szeredi <miklos@szeredi.hu>
851 * Fix bug, that causes filesystem requests to hang when unique
852 request counter becomes negative. This happens after
853 2,147,483,648 operations, so most people won't care. Thanks to
854 Franco Broi for the report and testing.
856 2005-07-21 Miklos Szeredi <miklos@szeredi.hu>
858 * Don't change mtime/ctime/atime to local time on read/write.
859 Bug reported by Ben Grimm
861 * Install fuse_common.h and fuse_lowlevel.h. Report by Christian
864 * fusermount: use getopt_long() for option parsing. It allows the
865 use of '--' to stop argument scanning, so fusermount can now
866 operate on directories whose names begin with a '-'. Patch by
869 2005-07-15 Miklos Szeredi <miklos@szeredi.hu>
871 * fusermount: add '-v', '--version' and '--help' options
873 * add inode based API
875 2005-07-12 Miklos Szeredi <miklos@szeredi.hu>
877 * lib: don't block signals in worker threads. Problem noticed by
880 2005-07-07 Miklos Szeredi <miklos@szeredi.hu>
882 * lib: don't allow both 'allow_other' and 'allow_root' options to
885 2005-07-06 Miklos Szeredi <miklos@szeredi.hu>
887 * fusermount: check if mountpoint is empty (only '.' and '..' for
888 directories, and size = 0 for regular files). If "nonempty"
889 option is given, omit this check. This is useful, so users don't
890 accidentally hide data (e.g. from backup programs). Thanks to
891 Frank van Maarseveen for pointing this out.
893 * kernel: check if mandatory mount options ('fd', 'rootmode',
894 'user_id', 'group_id') are all given
896 * lib: simplify 'readdir_ino' handling
898 * lib: add mount options 'umask=M', 'uid=N', 'gid=N'
900 2005-07-03 Miklos Szeredi <miklos@szeredi.hu>
902 * kernel: clean up 'direct_io' code
904 2005-06-28 Miklos Szeredi <miklos@szeredi.hu>
906 * Add 'mount.fuse' written by Petr Klima
908 * '/dev/fuse' is created by 'make install' if does not yet exist
910 2005-06-20 Miklos Szeredi <miklos@szeredi.hu>
912 * Fix UCLIBC compile error. Patch by Christian Magnusson
914 2005-06-08 Miklos Szeredi <miklos@szeredi.hu>
916 * Enable the auto-loading of the module via access to the
917 corresponding device file. Patch by Takashi Iwai.
919 * Allow mounting a regular file (over a regular file) for
922 * Do not create temporary device file. Require "/dev/fuse" to
923 exist, and be readable/writable by the mounting user.
925 2005-06-02 Miklos Szeredi <miklos@szeredi.hu>
929 2005-06-02 Miklos Szeredi <miklos@szeredi.hu>
931 * Fix serious information leak: if the filesystem returns a short
932 byte count to a read request, and there are non-zero number of
933 pages which are not filled at all, these pages will not be zeroed.
934 Hence the user can read out previous memory contents. Found by
937 2005-05-27 Miklos Szeredi <miklos@szeredi.hu>
939 * Add "readdir_ino" mount option, which tries to fill in the d_ino
940 field in struct dirent. This mount option is ignored if "use_ino"
941 is used. It helps some programs (e.g. 'pwd' used over NFS from a
942 non-Linux OS). Patch by David Shaw.
944 2005-05-12 Miklos Szeredi <miklos@szeredi.hu>
948 2005-05-12 Miklos Szeredi <miklos@szeredi.hu>
950 * File save in krusader and other editors doesn't work with sshfs,
951 because open() is interrupted by a periodic signal, and open()
952 restarts forever, without any progress. This could just be fixed
953 in open(), but the problem is more generic: if signals are
954 received more often than the filesystem can get the request to
955 userspace, it will never finish. This is probably only a
956 theoretical problem, nevertheless I'm removing the possibility to
957 interrupt requests with anything other than SIGKILL, even before
958 being sent to userspace. Bugreport by Eduard Czimbalmos.
960 2005-05-09 Miklos Szeredi <miklos@szeredi.hu>
962 * libfuse: add "tree_lock" rwlock, that is locked for write in
963 rename, unlink and rmdir, and locked for read in all other
964 operations. This should fix the rename/release race reported by
965 Valient Gough and others. The solution is very coarse, a finer
966 grained locking scheme could be implemented, but it would be much
967 more complex. Let's see whether this is good enough.
969 2005-05-09 Miklos Szeredi <miklos@szeredi.hu>
973 2005-05-08 Miklos Szeredi <miklos@szeredi.hu>
975 * Better fix for out of order FORGET messages. Now the
976 LOOKUP/FORGET messages are balanced exactly (one FORGET can
977 balance many lookups), so the order no longer matters. This
978 changes the kernel ABI slightly, but the library remains backward
981 2005-05-06 Miklos Szeredi <miklos@szeredi.hu>
983 * Fix abort for out of order FORGET messages. Again. Spotted by
984 Franco Broi again. Sorry :)
986 2005-04-29 Miklos Szeredi <miklos@szeredi.hu>
990 2005-04-29 Miklos Szeredi <miklos@szeredi.hu>
992 * Make fusermount work with fuse kernel modules not yet supporting
993 the "group_id" option (added for the purpose of stricter
994 permission checking).
996 2005-04-28 Miklos Szeredi <miklos@szeredi.hu>
998 * Check for hard-linked directories in lookup. This could cause
999 problems in the VFS, which assumes that such objects never exist.
1001 * Make checking of permission for other users more strict. Now
1002 the same privilege is required for the mount owner as for ptrace
1003 on the process performing the filesystem operation.
1005 2005-04-23 Miklos Szeredi <miklos@szeredi.hu>
1009 2005-04-22 Miklos Szeredi <miklos@szeredi.hu>
1011 * Add -msoft-float to kernel module compile flags for 2.4.X. This
1012 is needed on certain architectures. Report from Chris Kirby
1014 * Fix buggy behavior of open(..., O_CREAT|O_EXCL) if interrupted.
1015 Reported by David Shaw
1017 * Remove "allow_root" option from kernel module, and implement
1018 it's functionality in the library
1020 * Fix Oops caused by premature release of fuse_conn. Clean up
1021 related code, to be more readable
1023 * Sendfile should not use page cache if "direct_io" mount option
1026 2005-04-08 Miklos Szeredi <miklos@szeredi.hu>
1028 * Fix Oops in case of nfs export. Spotted by David Shaw
1030 * Fix another Oops in case of write over nfs with direct_io turned
1031 on. Again spotted by David Shaw
1033 2005-04-07 Miklos Szeredi <miklos@szeredi.hu>
1037 2005-04-07 Miklos Szeredi <miklos@szeredi.hu>
1039 * lib: finalized new readdir() interface, which now supersedes the
1042 2005-04-03 Miklos Szeredi <miklos@szeredi.hu>
1046 2005-04-03 Miklos Szeredi <miklos@szeredi.hu>
1048 * Implement backward compatibility with version 5 kernel ABI
1050 2005-04-01 Miklos Szeredi <miklos@szeredi.hu>
1054 2005-04-01 Miklos Szeredi <miklos@szeredi.hu>
1056 * kernel: fix dirent offset handling
1058 * lib: add readdir and releasedir methods
1060 * lib: use fh field of fuse_file_info in opendir, readdir,
1061 releasedir and fsyncdir methods
1063 * lib: check kernel API version and bail out of it's old. This
1064 will be properly fixed in the next release
1066 2005-03-31 Miklos Szeredi <miklos@szeredi.hu>
1070 2005-03-31 Miklos Szeredi <miklos@szeredi.hu>
1072 * kernel API: add padding to structures, so 64bit and 32bit
1073 compiler will return the same size
1075 * kernel API: add offset field to fuse_dirent. This will allow
1076 more sophisticated readdir interface for userspace
1078 * kernel API: change major number to 6
1080 * kernel: fix warnings on 64bit archs
1082 * kernel: in case of API version mismatch, return ECONNREFUSED
1084 2005-03-24 Miklos Szeredi <miklos@szeredi.hu>
1086 * kernel: trivial cleanups
1088 2005-03-21 Miklos Szeredi <miklos@szeredi.hu>
1090 * Add fsyncdir() operation
1092 2005-03-19 Miklos Szeredi <miklos@szeredi.hu>
1094 * kernel: add locking to background list (fixes previous fix)
1096 2005-03-18 Miklos Szeredi <miklos@szeredi.hu>
1098 * kernel: fix bug which could cause leave busy inodes after
1101 2005-03-08 Miklos Szeredi <miklos@szeredi.hu>
1103 * examples: add -lpthread to link flags to work around valgrind
1106 * lib: don't exit threads, so cancelation doesn't cause segfault
1108 2005-03-04 Miklos Szeredi <miklos@szeredi.hu>
1110 * kernel: fix nasty bug which could cause an Oops under certain
1111 situations. Found by Magnus Johansson
1113 2005-02-28 Miklos Szeredi <miklos@szeredi.hu>
1115 * libfuse: added opendir() method. This can be used in case
1116 permission checking in getdir() is too late. Thanks to Usarin
1117 Heininga for pointing out this deficiency
1119 * libfuse: added init() and destroy() methods to fuse_operations
1121 * kernel: llseek() method for files and directories made explicit
1123 * kernel: fixed inode leak in NFS export in case of nodeid
1126 2005-02-15 Miklos Szeredi <miklos@szeredi.hu>
1128 * libfuse: clean up some unitialized memory found with valgrind
1130 * Add -lpthread to Libs in fuse.pc. Valgrind seems to need an
1131 explicitly linked libpthread for applications
1133 2005-02-10 Miklos Szeredi <miklos@szeredi.hu>
1135 * fusermount: set umask, otherwise /etc/mtab will have
1136 unpredictable permission. Spotted by Jindrich Kolorenc
1138 * fusermount: set owner and group of /etc/mtab to original values
1141 * libfuse: add 'use_ino' option to help. Patch by Valient Gough
1143 2005-02-07 Miklos Szeredi <miklos@szeredi.hu>
1145 * Cleaned up directory reading (temporary file is not used)
1147 2005-02-02 Miklos Szeredi <miklos@szeredi.hu>
1151 2005-02-02 Miklos Szeredi <miklos@szeredi.hu>
1153 * Fix possible race when operation is interrupted
1155 2005-01-28 Miklos Szeredi <miklos@szeredi.hu>
1157 * Fix compilation on 2.6.7
1159 2005-01-26 Miklos Szeredi <miklos@szeredi.hu>
1163 2005-01-26 Miklos Szeredi <miklos@szeredi.hu>
1165 * Fix bug in link() operation which caused the wrong path to be
1166 passed as the first argument. Found by Anton Altaparmakov
1168 2005-01-21 Miklos Szeredi <miklos@szeredi.hu>
1170 * LIB: fix double reply in readdir operation
1172 * fusermount: fix uid checking bug. Patch by Adam Connell
1174 * KERNEL: fix compile on various RedHat patched 2.4 kernels.
1175 Patch by Keshava Gowda
1177 2005-01-20 Miklos Szeredi <miklos@szeredi.hu>
1179 * KERNEL: provide correct llseek semantics for fuse device (fixes
1180 a bug on Progeny 2.4.20 kernel). Reported by Valient Gough
1182 2005-01-20 Miklos Szeredi <miklos@szeredi.hu>
1184 * Released 2.2-pre5 (matches kernel 2.6.11-rc1-mm2)
1186 2005-01-18 Miklos Szeredi <miklos@szeredi.hu>
1188 * KERNEL ABI: remove GETDIR operation, and add OPENDIR, READDIR
1189 and RELEASEDIR. This ends the ugly hack of passing a file
1190 descriptor to the kernel, and actually makes the code simpler.
1192 2005-01-17 Miklos Szeredi <miklos@szeredi.hu>
1196 2005-01-17 Miklos Szeredi <miklos@szeredi.hu>
1198 * fusermount: remove capability setting, which was the cause of
1199 problems for some users. It seems that FS related capabilities
1200 are removed by setfsuid(), so this isn't even needed.
1202 2005-01-15 Miklos Szeredi <miklos@szeredi.hu>
1204 * fix compilation on 2.4 kernels (reported by Valient Gough)
1206 * fix failure to unmount bug (found by David Shaw)
1208 * fusermount: improve parsing of /etc/fuse.conf
1210 2005-01-13 Miklos Szeredi <miklos@szeredi.hu>
1212 * Remove 'mount_max' and 'user_allow_other' module options. These
1213 are now checked by fusermount, and can be set in /etc/fuse.conf
1215 * KERNEL: change check for fsid == 0 to capable(CAP_DAC_OVERRIDE)
1217 2005-01-11 Miklos Szeredi <miklos@szeredi.hu>
1219 * KERNEL: fix possible inode allocation problem, where
1220 sizeof(struct inode) is not aligned (found by Mike Waychison)
1222 * KERNEL: use new follow_link/put_link methods
1224 * KERNEL: cosmetic fixes
1226 2005-01-10 Miklos Szeredi <miklos@szeredi.hu>
1230 2005-01-10 Miklos Szeredi <miklos@szeredi.hu>
1232 * Add missing code that was accidently left out
1234 2005-01-09 Miklos Szeredi <miklos@szeredi.hu>
1238 2005-01-09 Miklos Szeredi <miklos@szeredi.hu>
1240 * Change "uid" mount option to "user_id" to avoid confusion with a
1241 mount option "uid" commonly used by many filesystems
1243 2005-01-09 Miklos Szeredi <miklos@szeredi.hu>
1247 2005-01-09 Miklos Szeredi <miklos@szeredi.hu>
1249 * If FUSE is configured in the kernel, don't build it by default
1251 2005-01-07 Miklos Szeredi <miklos@szeredi.hu>
1253 * Compile fix by Christian Magnusson
1255 2005-01-05 Miklos Szeredi <miklos@szeredi.hu>
1257 * Fix compilation for 2.6.{0-5} kernels
1259 2005-01-04 Miklos Szeredi <miklos@szeredi.hu>
1261 * KERNEL: if request is interrupted, still keep reference to used
1262 inode(s) and file, so that FORGET and RELEASE are not sent until
1263 userspace finishes the request.
1265 * remove /{sys,proc}/fs/fuse/version, and instead add an INIT
1266 request with the same information, which is more flexible,
1267 simpler, works on embedded systems.
1269 2004-12-16 Miklos Szeredi <miklos@szeredi.hu>
1271 * KERNEL ABI: update interface to make it independent of type
1272 sizes. This will help on 64 bit architectures which can run
1273 legacy 32 bit applications.
1275 * KERNEL ABI: add "len" field to request headers. This will allow
1276 sending/receiving requests in multiple chunks.
1278 * KERNEL: handle file type change more intelligently
1280 * LIB: "-o debug" option should disable backgrounding (fix by
1281 Fabien Reygrobellet)
1283 2004-12-13 Miklos Szeredi <miklos@szeredi.hu>
1285 * KERNEL: invalidate dentry/attributes if interrupted request
1286 could leave filesystem in an unknown state.
1288 2004-12-12 Miklos Szeredi <miklos@szeredi.hu>
1290 * KERNEL: lots of cleanups related to avoiding possible deadlocks.
1291 These will cause some regressions, but stability is considered
1292 more important. If any of these features turns out to be
1293 important, it can be readded with the deadlock problems addressed.
1295 * Make all requests interruptible (only with SIGKILL currently).
1296 This can be used to break any deadlock produced by the userspace
1297 filesystem accessing it's own exported files. The RELEASE request
1298 is special, because if it's interrupted before sending it to
1299 userspace it is still sent, but the reply is not awaited.
1301 * If request is interrupted before being sent to userspace, and if
1302 it hasn't yet got any side effects, it is always restarted,
1303 regardless of the SA_RESTART flag. This makes these interruptions
1304 transparent to the process.
1306 * Remove shared-writable mmap support, which was prone to an
1307 out-of-memory deadlock situation
1309 * Remove INVALIDATE userspace initiated request
1311 * Make readpages() synchronous. Asynchronous requests are
1312 deadlock prone, since they cannot be interrupted.
1314 * Add readv/writev support to fuse device operations
1316 * Remove some printks, which userspace FS can use for a DoS
1319 * Remove 'large_read' mount option from 2.6 in kernel, check it in
1322 * LIB: improve compatibility with a fuse.h header installed in
1323 ${prefix}/include which in turn includes the real header.
1325 * LIB: improve compatibility by defining fuse_main() (which is now
1326 not used), so old configure scripts find it.
1328 2004-12-10 Miklos Szeredi <miklos@szeredi.hu>
1330 * When mounting on a subdirectory of / don't duplicate slashes at
1331 the beggining of path (spotted by David Shaw)
1333 2004-12-09 Miklos Szeredi <miklos@szeredi.hu>
1335 * Fix bug causing garbage in mount options (spotted by David Shaw)
1337 2004-12-07 Miklos Szeredi <miklos@szeredi.hu>
1339 * Add 'writepage' flag to 'fuse_file_info'.
1341 * More comments in fuse.h
1343 * Get rid of double underscores
1345 2004-12-04 Miklos Szeredi <miklos@szeredi.hu>
1347 * Add -D_FILE_OFFSET_BITS=64 to cflags provided by pkg-config
1349 * helper.c: add -ho option, which only displays the options not
1350 the usage header. This can be used by filesystems which have
1353 2004-12-03 Miklos Szeredi <miklos@szeredi.hu>
1355 * Add source compatibility to 2.1 and 1.1 APIs. To select betwen
1356 versions simply define FUSE_USE_VERSION to 22, 21 or 11 before
1357 including the fuse header
1359 * Add binary compatibility to 2.1 version of library with symbol
1362 2004-12-03 Miklos Szeredi <miklos@szeredi.hu>
1366 2004-12-01 Miklos Szeredi <miklos@szeredi.hu>
1368 * kernel: clean up writing functions
1370 * kernel: no allocation on write in direct_io mode
1372 * move linux/fuse.h to fuse_kernel.h
1374 2004-11-30 Miklos Szeredi <miklos@szeredi.hu>
1376 * kernel: clean up reading functions
1378 2004-11-29 Miklos Szeredi <miklos@szeredi.hu>
1380 * kernel: make readpage() uninterruptible
1382 * kernel: check readonly filesystem flag in fuse_permission
1384 * lib: don't die if version file not found and new style device
1387 * lib: add '-r' option, which is short for '-o ro'
1389 * fusermount: simplify device opening
1391 * kernel: when direct_io is turend on, copy data directly to
1392 destination without itermediate buffer. More efficient and safer,
1393 since no allocation is done.
1395 * fusermount: fix warning if fuse module is not loaded
1397 * kernel: use /dev/fuse on 2.4 too
1399 2004-11-26 Miklos Szeredi <miklos@szeredi.hu>
1401 * libfuse API change: open, read, write, flush, fsync and release
1402 are passed a 'struct fuse_file_info' pointer containing the open
1403 flags (open and release), and the file handle. Verion changed to
1406 2004-11-23 Miklos Szeredi <miklos@szeredi.hu>
1408 * More cleanups in the kernel
1410 * The 10,229 charater device number has been assigned for FUSE
1412 * Version file checking fix (reported by Christian Magnusson)
1414 * fusermount: opening the fuse device now doesn't need /sys.
1416 * Optimize reading by controlling the maximum readahead based on
1417 the 'max_read' mount option
1419 * fixes for UCLIBC (Christian Magnusson)
1421 2004-11-19 Miklos Szeredi <miklos@szeredi.hu>
1423 * Cleaned up kernel in preparation for merge into mainline:
1425 * Use /sys/fs/fuse/version instead of /proc/fs/fuse/version
1427 * Use real device (/dev/fuse) instead of /proc/fs/fuse/dev
1429 * __user annotations for sparse
1431 * allocate individual pages instead of kmalloc in fuse_readdir,
1432 fuse_read and fuse_write.
1434 * Fix NFS export in case "use_ino" mount option is given
1436 * Make libfuse and fusermount compatible with future versions
1438 * fusermount: properly add mount options to /etc/mtab
1440 2004-11-15 Miklos Szeredi <miklos@szeredi.hu>
1442 * fusermount: do not resolve last component of mountpoint on if it
1443 is '.' or '..'. This new path resolvation is now done on mount as
1444 well as unmount. This enables relative paths to work on unmount.
1446 * fusermount: parse common mount options like "ro", "rw", etc...
1448 * Allow module params to be changed through sysfs
1450 2004-11-14 Miklos Szeredi <miklos@szeredi.hu>
1454 2004-11-14 Miklos Szeredi <miklos@szeredi.hu>
1456 * Fix bug in fuse_readpages() causing Oops in certain situations.
1457 Bug found by Vincenzo Ciancia.
1459 * Fix compilation with kernels versions > 2.6.9.
1461 2004-11-11 Miklos Szeredi <miklos@szeredi.hu>
1463 * Check kernel interface version in fusermount to prevent
1464 strangeness in case of mismatch.
1466 * No need to allocate fuse_conn until actual mount happens
1468 * Fix potential race between umount and fuse_invalidate
1470 * Check superblock of proc file in addition to inode number
1472 * Fix race between request_send_noreply() and fuse_dev_release()
1474 2004-11-10 Miklos Szeredi <miklos@szeredi.hu>
1476 * Separate configure for the kernel directory
1478 * Don't allow write to return more than 'count'
1480 * Extend kernel interface for future use
1482 2004-11-09 Miklos Szeredi <miklos@szeredi.hu>
1484 * Fix 'makeconf.sh' to use autoreconf if available
1486 2004-11-08 Miklos Szeredi <miklos@szeredi.hu>
1488 * Add ino argument to 'fuse_dirfil_t'. NOTE: This breaks source
1489 compatibility with earlier versions. To compile earier versions
1490 just add '-DFUSE_DIRFIL_COMPAT' compile flag or fix the source.
1491 Do not use the "use_ino" mount flag with filesystems compiled with
1494 * Add pkg-config support. To compile a FUSE based filesystem you
1495 can do "gcc -Wall `pkg-config --cflags --libs fuse` myfs.c -o myfs"
1496 or similar. Note, that the PKG_CONFIG_PATH environment variable
1497 usually needs to be set to "/usr/local/lib/pkgconfig".
1499 * fuse.h is now installed in ${prefix}/include/fuse/
1501 2004-11-02 Miklos Szeredi <miklos@szeredi.hu>
1503 * Added "use_ino" mount option. This enables the filesystems to
1504 set the st_ino field on files
1506 2004-11-01 Miklos Szeredi <miklos@szeredi.hu>
1508 * Fix compile problems with ancient (<=2.4.18) kernels (reported
1511 * Add "allow_root" mount option. Patch by Yaroslav Rastrigin
1513 * Clear the 'exited' flag when mail loop is finished
1515 2004-10-28 Miklos Szeredi <miklos@szeredi.hu>
1517 * Make xattr functions work under 2.6 (bug found by Vincenzo
1520 2004-10-26 Miklos Szeredi <miklos@szeredi.hu>
1522 * Reset request in fuse_flush() (bugreport by David Shaw)
1524 2004-10-21 Miklos Szeredi <miklos@szeredi.hu>
1526 * fuse_main() now does not exit on error, rather it returns an
1529 * Exported __fuse_setup() and __fuse_teardown() functions, which
1530 make it easier to implement a custom event loop.
1532 * Use daemon() call to background the filesystem after mounting.
1533 This function closes the standard input, output and error and
1534 changes the current working directory to "/".
1536 2004-10-14 Miklos Szeredi <miklos@szeredi.hu>
1540 2004-10-09 Miklos Szeredi <miklos@szeredi.hu>
1542 * Don't allow fuse_flush() to be interrupted (bug found by David
1545 2004-09-27 Miklos Szeredi <miklos@szeredi.hu>
1547 * Add PID to fuse_context. Patch by Steven James
1549 * Change file handle type to 'unsigned long' in kernel interface
1551 2004-09-22 Miklos Szeredi <miklos@szeredi.hu>
1553 * A slight API change: fuse_get_context() doesn't need the "fuse"
1554 pointer, but the returned context contains it instead. The
1555 fuse_get() function is not needed anymore, so it's removed.
1557 * Fix mounting and umounting FUSE filesystem under another FUSE
1558 filesystem by non-root (bug spotted by Valient Gough)
1560 2004-09-21 Miklos Szeredi <miklos@szeredi.hu>
1562 * Fix deadlock in case of memory allocation failure. Patch by
1565 2004-09-16 Miklos Szeredi <miklos@szeredi.hu>
1567 * Check memory allocation failures in libfuse
1569 2004-09-14 Miklos Szeredi <miklos@szeredi.hu>
1571 * Check temporary file creation failure in do_getdir(). Bug
1572 spotted by Terje Oseberg
1574 2004-09-13 Miklos Szeredi <miklos@szeredi.hu>
1576 * Allow "large_read" option for 2.6 kernels but warn of deprecation
1578 * Make requests non-interruptible so race with FORGET is avoided.
1579 This is only a temporary solution
1581 * Support compiling FUSE kernel module on 2.4.x UML kernels
1583 2004-09-09 Miklos Szeredi <miklos@szeredi.hu>
1585 * Fix bug in case two FORGETs for the same node are executed in
1586 the wrong order. Bug spotted and endured for months by Franco
1587 Broi, and logfile for solution provided by Terje Oseberg
1589 2004-09-01 Miklos Szeredi <miklos@szeredi.hu>
1591 * Add -D_REENTRANT to the compile flags
1593 * Add documentation of fuse internals by Terje Oseberg
1595 2004-08-16 Miklos Szeredi <miklos@szeredi.hu>
1597 * Change release method to be non-interruptible. Fixes bug
1598 causing missing release() call when program which has opened files
1599 is killed (reported by Franco Broi and David Shaw)
1601 2004-07-29 Miklos Szeredi <miklos@szeredi.hu>
1603 * Add fuse_invalidate() to library API
1605 2004-07-26 Miklos Szeredi <miklos@szeredi.hu>
1607 * Check permissions in setattr if 'default_permissions' flag is
1608 set. Bug spotted by Damjan Lango
1610 2004-07-24 Miklos Szeredi <miklos@szeredi.hu>
1612 * 'large_read' mount option removed for 2.6 kernels, since the
1613 default (dynamic read size) is better
1615 * Extend kernel API with file handles. A file handle is returned
1616 by open, and passed to read, write, flush, fsync and release.
1617 This is currently only used for debug output in the library.
1621 * Change the current directory to the mountpoint before checking
1622 the permissions and mount filesystem on "."
1624 * By default don't modprobe the fuse module for non-root. The old
1625 behavior can be restored with the '--enable-auto-modprobe' flag of
1628 * By default don't allow shared writable mappings for non-root.
1629 The old behavior can be restored with the 'user_mmap=1' module
1632 2004-07-23 Miklos Szeredi <miklos@szeredi.hu>
1634 * Clean up mount option passing to fusermount and to fuse_new()
1635 BEWARE: this changes the userspace API slightly, and the command
1636 line usage of programs using fuse_main()
1638 2004-07-20 Miklos Szeredi <miklos@szeredi.hu>
1640 * Optimize reading under 2.6 kernels by issuing multiple page
1641 asynchronous read requests
1643 2004-07-18 Miklos Szeredi <miklos@szeredi.hu>
1645 * Only use redirty_page_for_writepage() for kernels >= 2.6.6
1647 2004-07-16 Miklos Szeredi <miklos@szeredi.hu>
1649 * Separate directory entry and inode attribute validity timer
1651 * New write semaphore to stop page writeback during truncate
1653 * Fsync now waits for all writes to complete before sending the
1656 * Optimization: if a page is completely written by
1657 fuse_commit_write(), clear the dirty flag and set the uptodate
1660 * Some memory cleanup at exit
1662 2004-07-13 Miklos Szeredi <miklos@szeredi.hu>
1664 * Add FUSE_HARD_REMOVE flag, and '-i' option to fuse main, which
1665 disable the "hide if open" behavior of unlink/rename.
1667 * If temporary buffer allocation fails in raw read, fall back to a
1670 2004-07-12 Miklos Szeredi <miklos@szeredi.hu>
1672 * Fix bug in do_open() in libfuse: open count was incremented
1673 after the reply is sent so it could race with unlink/forget and
1676 2004-07-08 Miklos Szeredi <miklos@szeredi.hu>
1678 * When performing create or remove operation, refresh the parent's
1679 attributes on next revalidate, as i_nlink (and maybe size/time)
1682 * Use redirty_page_for_writepage() in fuse_writepage() for skipped
1685 * Set set_page_dirty address space operation (2.6 only)
1687 2004-07-06 Miklos Szeredi <miklos@szeredi.hu>
1689 * Minor fix in read: print debug info even if read size is zero
1691 2004-07-04 Miklos Szeredi <miklos@szeredi.hu>
1693 * Fix race between truncate and writepage (fsx-linux now runs
1696 2004-07-02 Miklos Szeredi <miklos@szeredi.hu>
1698 * Fix kernel hang on mkfifo under 2.4 kernels (spotted and patch
1701 * Added option for direct read/write (-r)
1703 * Fix revalidate time setting for newly created inodes
1705 * Remove uid==0 check for '-x' option in fusermount (kernel checks
1708 * fuse_main() only installs handlers for signals (out of INT, HUP,
1709 TERM, PIPE), for which no handler has yet been installed
1711 * Add module option 'user_allow_other' which if set to non-zero
1712 will allow non root user to specify the 'allow_other' mount option
1713 ('-x' option of fusermount)
1715 * Fix deadlock between page writeback completion and truncate
1716 (bug found by Valient Gough with the fsx-linux utility)
1718 2004-07-01 Miklos Szeredi <miklos@szeredi.hu>
1720 * Change passing fuse include dir to 2.6 kernel make system more
1721 robust (fixes compile problems seen on SuSE 9.1 with updated 2.6
1724 2004-06-30 Miklos Szeredi <miklos@szeredi.hu>
1726 * Acquire inode->i_sem before open and release methods to prevent
1727 concurrent rename or unlink operations.
1729 * Make __fuse_read_cmd() read only one command. This allows
1730 multiplexing the fuse file descriptor with other event sources
1731 using select() or poll() (patch by Jeff Harris)
1733 * Export 'exited' flag with __fuse_exited() (patch by Jeff Harris)
1735 2004-06-27 Miklos Szeredi <miklos@szeredi.hu>
1737 * Fix file offset wrap around at 4G when doing large reads
1739 2004-06-24 Miklos Szeredi <miklos@szeredi.hu>
1741 * Fix memory leak in open (Valient Gough)
1743 2004-06-24 Miklos Szeredi <miklos@szeredi.hu>
1745 * Add "close after delete" support to libfuse (patch by Valient
1748 * Cancel all worker threads before exit in multithreaded mode
1750 2004-06-23 Miklos Szeredi <miklos@szeredi.hu>
1754 * Don't send reply to RELEASE
1756 * Work with newer libtool (1.5a)
1758 * Check for st_atim member of struct stat
1760 2004-06-22 Miklos Szeredi <miklos@szeredi.hu>
1762 * No request allocation needed on inode and file release
1764 2004-06-21 Miklos Szeredi <miklos@szeredi.hu>
1766 * Fix possible inode leak in userspace in case of unfinished
1767 lookup/mknod/mkdir/symlink/link operation.
1769 2004-06-20 Miklos Szeredi <miklos@szeredi.hu>
1771 * Fix some races and cleanups in fuse_read_super()
1773 2004-06-19 Miklos Szeredi <miklos@szeredi.hu>
1775 * Requests are allocated at open time
1777 2004-06-03 Miklos Szeredi <miklos@szeredi.hu>
1779 * Build shared library as well as static (using libtool)
1781 * Change FUSE_MINOR_VERSION from 1 to 0. I know it's illegal but
1782 there has not been a release with the previous minor number, and I
1783 hope nobody is using it for anything.
1785 * Change fuse_main(), so that default behavior is to go into
1786 background if mount is successful. '-f' and '-d' options disable
1787 backgrounding. This fixes the "Why does my FUSE daemon hang?"
1790 * Cache ENOSYS (function not implemented) errors on *xattr, flush
1793 * Don't call getdir method from open() only from first readdir().
1794 Open is sometimes just used to store the current directory
1797 2004-05-18 Miklos Szeredi <miklos@szeredi.hu>
1799 * Added flush() call
1801 2004-05-04 Miklos Szeredi <miklos@szeredi.hu>
1803 * Extended attributes support for 2.4 (patch by Cody Pisto)
1805 2004-04-20 Miklos Szeredi <miklos@szeredi.hu>
1807 * Fixed parser with modversions (Mattias Wadman)
1809 2004-04-19 Miklos Szeredi <miklos@szeredi.hu>
1811 * Added mount option parser to 2.4 build
1813 2004-04-13 Miklos Szeredi <miklos@szeredi.hu>
1815 * Replaced binary mount data with text options
1817 * Show FUSE specific mount options in /proc/mounts
1819 * Check in fuse.h whether _FILE_OFFSET_BITS is set to 64
1821 2004-04-09 Miklos Szeredi <miklos@szeredi.hu>
1823 * Check some limits so userspace won't get too big requests
1825 2004-04-05 Miklos Szeredi <miklos@szeredi.hu>
1827 * Kill compile warning
1829 * Upgraded user-mount patch for 2.6.5
1831 2004-04-02 Miklos Szeredi <miklos@szeredi.hu>
1833 * Add detection of user-mode-linux to configure
1835 2004-03-31 Miklos Szeredi <miklos@szeredi.hu>
1837 * fixed zero size case for getxattr and listxattr
1839 2004-03-30 Miklos Szeredi <miklos@szeredi.hu>
1841 * new fusermount flag '-z': lazy unmount, default is not lazy
1843 * Extended attributes operations added (getxattr, setxattr,
1844 listxattr, removexattr)
1846 2004-03-25 Miklos Szeredi <miklos@szeredi.hu>
1848 * If filesystem doesn't define a statfs operation, then an
1849 all-zero default statfs is returned instead of ENOSYS
1851 2004-03-24 Miklos Szeredi <miklos@szeredi.hu>
1853 * Add FS_BINARY_MOUNTDATA filesystem flag for kernels > 2.6.4
1855 2004-03-09 Miklos Szeredi <miklos@szeredi.hu>
1857 * Fix for uClinux (Christian Magnusson)
1859 2004-03-02 Miklos Szeredi <miklos@szeredi.hu>
1861 * fuse_main() adds "-n progname" to the fusermount command line
1863 * More kernel interface changes:
1865 * Lookup/getattr return cache timeout values
1867 2004-02-25 Miklos Szeredi <miklos@szeredi.hu>
1869 * Clean up option parsing in fuse_main()
1871 * Added fuse_get() function which returns the fuse object created
1874 2004-02-20 Miklos Szeredi <miklos@szeredi.hu>
1876 * removed old way of mounting (fusermount mountpoint program)
1878 * more kernel interface changes:
1880 * added nanosecond precision to file times
1882 * removed interface version from mount data
1884 * added /proc/fs/fuse/version which contains MAJOR.MINOR
1886 2004-02-19 Miklos Szeredi <miklos@szeredi.hu>
1888 * statfs library API changed to match other methods. Since this
1889 is not backward compatible FUSE_MAJOR_VERSION is changed to 2
1891 * kernel interface changes follow:
1893 * statfs changed to 64 bits, added 'bavail' field
1895 * add generation number to lookup result
1897 * optimized mknod/mkdir/symlink/link (no separate lookup is
1900 * rdev size increased to 32 bits for mknod
1902 * kernel interface version changed to 3.1
1904 2004-02-18 Miklos Szeredi <miklos@szeredi.hu>
1906 * user-mount upgraded for 2.6.3 kernel
1908 2004-02-17 Miklos Szeredi <miklos@szeredi.hu>
1910 * Added user-mount.2.6.2-rc3.patch
1912 * Add FS_SAFE flag to fuse filesystem
1914 * fusermount should allow (un)mounting for non-root even if not
1917 2004-02-12 Miklos Szeredi <miklos@szeredi.hu>
1919 * Remove MS_PERMISSION mount flag (that means something else now)
1921 2004-02-10 Miklos Szeredi <miklos@szeredi.hu>
1923 * Added check for i_size_read/write functions to configure.in
1924 (patch by Valient Gough)
1926 2004-02-06 Miklos Szeredi <miklos@szeredi.hu>
1928 * Fixed writing >= 2G files
1930 * Check file size on open (with generic_file_open())
1932 * Readpage calls flush_dcache_page() after storing data
1934 * Use i_size_read/write for accessing inode->i_size
1936 * Make loopback mount of a fuse file work
1938 2004-02-04 Miklos Szeredi <miklos@szeredi.hu>
1942 2004-01-29 Miklos Szeredi <miklos@szeredi.hu>
1944 * Properly check if the inode exists in fuse_invalidate
1946 2004-01-27 Miklos Szeredi <miklos@szeredi.hu>
1948 * Added -q option for fusermount
1950 * fuse_unmount() now uses -q option of fusermount, so no error is
1951 printed if the cause of the program exit is that the filesystem
1952 has already been unmounted
1954 * Fix i_nlink correctness after rmdir/unlink
1956 2004-01-26 Miklos Szeredi <miklos@szeredi.hu>
1960 2004-01-26 Miklos Szeredi <miklos@szeredi.hu>
1962 * Fix typo (thanks Marcos Dione)
1964 * Compile fixes for 2.4 kernels
1966 2004-01-23 Miklos Szeredi <miklos@szeredi.hu>
1968 * Fix CONFIG_MODVERSIONS compile on 2.6
1970 2004-01-22 Miklos Szeredi <miklos@szeredi.hu>
1972 * Write all pending data before a RELEASE operation
1974 * Suppress 'Bad file descriptor' warning on exit
1976 * Replaced fusermount option '-d xxx' with '-n xxx' so it doesn't
1977 get confused with '-d' of fuse_main() (sorry about this change)
1979 * New fusermount option '-l' which enables big reads. Big reads
1980 are now disabled by default.
1982 * fuse_main() can accept fusermount arguments after a '--'
1984 2004-01-19 Miklos Szeredi <miklos@szeredi.hu>
1986 * Support for exporting filesystem over NFS (see README.NFS)
1988 2004-01-14 Miklos Szeredi <miklos@szeredi.hu>
1990 * Support non-blocking writepage on 2.6. This makes FUSE behave
1991 much more nicely in low-memory situations
1993 * Fix 32-bit dev handling in getattr and mknod for 2.6 kernels.
1994 (Note: the mknod method does not yet use 32bit device number)
1996 2004-01-13 Miklos Szeredi <miklos@szeredi.hu>
2000 2004-01-07 Miklos Szeredi <miklos@szeredi.hu>
2004 2004-01-06 Miklos Szeredi <miklos@szeredi.hu>
2006 * Integrated 2.6 kernel support patch by Michael Grigoriev
2008 * Improvements and cleanups for 2.6 kernels
2010 2004-01-05 Miklos Szeredi <miklos@szeredi.hu>
2012 * Added -d option to fusermount
2014 2003-12-15 Miklos Szeredi <miklos@szeredi.hu>
2016 * Added major+minor version to library API, and minor version to
2019 2003-12-13 David McNab <david@rebirthing.co.nz>
2021 * Implemented fsync support in examples/example.py
2023 * Implemented 'fsync' and 'statfs' methods in python
2026 2003-12-12 Miklos Szeredi <miklos@szeredi.hu>
2028 * Make it compile on 2.4.19.
2030 * Add fsync operation (write file failed on xemacs & vi)
2032 2003-12-12 David McNab <david@rebirthing.co.nz>
2034 * Added distutils support to the python module, as per standard
2035 python development practice
2037 2003-12-11 Miklos Szeredi <miklos@szeredi.hu>
2039 * Add file locking for mount/unmount (based on patch by Valient
2042 2003-12-11 David McNab <david@rebirthing.co.nz>
2044 * Python filesystem - was broken with python2.3, now fixed:
2045 - changed PyTuple_* calls to PySequence_*, because os.lstat
2046 is no longer returning a pure tuple
2047 - changed PyInt_Check() calls to also call PyLong_Check,
2048 to cover for cases (eg os.lstat) where longs are returned
2049 - Added support for file 'release' handling, which IMO is
2050 essential since this signals to a FS that writes to a file
2051 are complete (and therefore the file can now be disposed of
2052 meaningfully at the python filesystem's discretion)
2053 - Added '__init__' handler to base Fuse class, which allows
2054 your Python class to know the mountpoint and mount args,
2055 as attributes myfs.mountpoint, myfs.optlist, myfs.optdict
2058 - added 'mount.fuse' script (in util/ dir), which is meant to be
2059 symlinked from /sbin, and which allows FUSE filesystems to
2060 be mounted with the 'mount' command, and listed in fstab;
2061 also, mount arguments get passed to your filesystem
2064 2003-11-04 Miklos Szeredi <miklos@szeredi.hu>
2066 * Fix kernel version detection (again). Bugreport by Peter Levart
2068 2003-11-03 Miklos Szeredi <miklos@szeredi.hu>
2070 * Applied read combining patch by Michael Grigoriev (tested by
2071 Valient Gough and Vincent Wagelaar)
2073 2003-10-22 Miklos Szeredi <miklos@szeredi.hu>
2075 * Mtab handling fix in fusermount by "Valient Gough" (SF patch
2078 2003-10-13 Miklos Szeredi <miklos@szeredi.hu>
2080 * Error code fixes in kernel module
2082 2003-10-04 Miklos Szeredi <miklos@szeredi.hu>
2084 * kernel version detection fix
2086 * fusermount now uses "lazy" umount option
2088 * fusermount can use modprobe with module-init-tools
2090 2003-09-08 Miklos Szeredi <miklos@szeredi.hu>
2092 * Integrated caching patch by Michael Grigoriev
2094 * Added "Filesystems" file with descriptions of projects using
2097 * Added patch by Michael Grigoriev to allow compliation of FUSE
2098 kernel module for 2.6 kernels
2100 2003-06-02 Miklos Szeredi <miklos@szeredi.hu>
2102 * And another spec-file fix by Achim Settelmeier
2104 2003-05-26 Miklos Szeredi <miklos@szeredi.hu>
2106 * Spec-file fix by Achim Settelmeier
2108 2003-03-10 Miklos Szeredi <miklos@szeredi.hu>
2110 * Fix umount oops (found by Samuli Kärkkäinen)
2112 2003-03-05 Miklos Szeredi <miklos@szeredi.hu>
2114 * Merge of fuse_redhat.spec and fuse.spec by Achim Settelmeier
2116 2003-03-04 Miklos Szeredi <miklos@szeredi.hu>
2118 * Updated fuse.spec file (Achim Settelmeier)
2120 2003-02-19 Miklos Szeredi <miklos@szeredi.hu>
2122 * Version 1.0 released
2124 2003-02-12 Miklos Szeredi <miklos@szeredi.hu>
2126 * SuSE compilation fix by Juan-Mariano de Goyeneche
2128 2002-12-10 Miklos Szeredi <miklos@szeredi.hu>
2130 * The release() VFS call is now exported to the FUSE interface
2132 2002-12-05 Miklos Szeredi <miklos@szeredi.hu>
2134 * 64 bit file offset fixes in the fuse kernel module
2136 * Added function 'fuse_exit()' which can be used to exit the main
2139 2002-12-03 Miklos Szeredi <miklos@szeredi.hu>
2141 * Added _FILE_OFFSET_BITS=64 define to fuse.h. Note, that this is
2142 an incompatible interface change.
2144 2002-10-28 Miklos Szeredi <miklos@szeredi.hu>
2146 * Portablility fix (bug reported by C. Chris Erway)
2148 2002-10-25 Miklos Szeredi <miklos@szeredi.hu>
2150 * Use Mark Glines' fd passing method for default operation instead
2153 2002-10-22 Miklos Szeredi <miklos@szeredi.hu>
2155 * fix "Stale NFS file handle" bug caused by changes in 2.4.19
2157 2002-10-22 Miklos Szeredi <miklos@szeredi.hu>
2159 * fix incompatiblity with Red Hat kernels, with help from Nathan
2162 2002-04-18 Mark Glines <mark@glines.org>
2164 * added an alternative to fuse_mount(), called
2165 fuse_mount_ioslave(), which does not need to reexec the
2167 * added a small helper util needed by fuse_mount_ioslave().
2169 2002-03-16 Mark Glines <mark@glines.org>
2171 * use struct fuse_statfs everywhere possible to avoid problems
2172 with the headerfiles changing struct statfs member sizes
2174 2002-03-01 Miklos Szeredi <miklos@szeredi.hu>
2176 * Another RPM spec file for RedHat >= 7 by Ian Pilcher
2178 2002-01-14 Miklos Szeredi <miklos@szeredi.hu>
2180 * RPM support by Achim Settelmeier
2182 2002-01-09 Miklos Szeredi <miklos@szeredi.hu>
2184 * Version 0.95 released
2186 2002-01-09 Miklos Szeredi <miklos@szeredi.hu>
2188 * Revaidate all path components not just the last, this means a
2189 very small performance penalty for being more up-to-date.
2191 2002-01-08 Miklos Szeredi <miklos@szeredi.hu>
2193 * Update and fix python interface
2195 2002-01-07 Mark Glines <mark@glines.org>
2197 * Added statfs() support to kernel, lib, examples, and perl!
2199 2001-12-26 Miklos Szeredi <miklos@szeredi.hu>
2201 * Better cross compilation support
2203 * Ported to Compaq IPAQ
2205 2001-12-20 Miklos Szeredi <miklos@szeredi.hu>
2207 * Added function fuse_get_context() to library API (inspired by
2208 patch from Matt Ryan)
2210 * Added flags to fusermount and to kernel interface to control
2213 * Integrated fuse_set_operations() into fuse_new()
2215 2001-12-08 Miklos Szeredi <miklos@szeredi.hu>
2217 * Applied header protection + extern "C" patch by Roland
2220 2001-12-02 Miklos Szeredi <miklos@szeredi.hu>
2222 * Added perl bindings by Mark Glines
2224 2001-11-21 Miklos Szeredi <miklos@szeredi.hu>
2226 * Cleaned up way of mounting simple filesystems.
2228 * fuse_main() helper function added
2230 2001-11-18 Miklos Szeredi <miklos@szeredi.hu>
2232 * Optimized read/write operations, so that minimal copying of data
2235 2001-11-14 Miklos Szeredi <miklos@szeredi.hu>
2237 * Python bindings by Jeff Epler added
2239 2001-11-13 Miklos Szeredi <miklos@szeredi.hu>
2241 * Fixed vfsmount reference leak in fuse_follow_link
2243 * FS blocksize is set to PAGE_CACHE_SIZE, blksize attribute from
2244 userspace is ignored
2246 2001-11-09 Miklos Szeredi <miklos@szeredi.hu>