* Released 2.7.5
[fuse.git] / ChangeLog
blob883a44a190bdaf9bfdfb36a13804dfd1f74b50e4
1 2010-01-26  Miklos Szeredi <miklos@szeredi.hu>
3         * Released 2.7.5
5 2010-01-21  Miklos Szeredi <miklos@szeredi.hu>
7         * Fix race if two "fusermount -u" instances are run in parallel.
8         Reported by Dan Rosenberg
10         * Make sure that the path to be unmounted doesn't refer to a
11         symlink
13 2009-07-16  Miklos Szeredi <miklos@szeredi.hu>
15         * Add missing pthread link for libulockmgr.  Patch by  Petr Salinger
17 2009-06-16  Miklos Szeredi <miklos@szeredi.hu>
19         * Add missing fuse_reply_bmap to versionscript.  Debian
20         Bug#531329.  Reported by Goswin Brederlow
22 2009-05-27  Miklos Szeredi <miklos@szeredi.hu>
24         * kernel: Don't set 'aborted' flag on a request if it's
25         interrupted (commit a131de0a).  Reported and tested by John Haxby
27         * Don't call forget_node() if the lookup was negative and write()
28         for the reply returned ENOENT.  Reported by John Haxby
30 2008-07-25  Miklos Szeredi <miklos@szeredi.hu>
32         * Released 2.7.4
34 2008-07-25  Miklos Szeredi <miklos@szeredi.hu>
36         * Update kernel module to compile with 2.6.26
38 2008-03-19  Miklos Szeredi <miklos@szeredi.hu>
40         * Fix missing pthread_mutex_destroy in error path of
41         fuse_lib_opendir().  Patch by Szabolcs Szakacsits
43 2008-02-19  Miklos Szeredi <miklos@szeredi.hu>
45         * Released 2.7.3
47 2008-02-13  Miklos Szeredi <miklos@szeredi.hu>
49         * Add missing bdi_init() and bdi_destroy() calls for 2.6.24
50         kernel.  Lack of bdi_init() could cause write to hang.  Report
51         forwarded by Szakacsits Szabolcs from the NTFS-3G forum.
53 2008-02-03  Csaba Henk <csaba.henk@creo.hu>
55         * lib/mount_bsd.c:
56         - string formatting fixes
57         - exit if mounting has failed
58           (in FreeBSD a mount failure is not critical per se, as the daemon
59           still could be mounted externally, but waiting for such an event
60           is more confusing than fruitful)
61         - ditch the kvm(8) stuff and simply use forced unmount which just
62           won't block
63         - prettify option specifications
64         - add "-onosync_unmount" kernel option
66 2008-01-07  Csaba Henk <csaba.henk@creo.hu>
68         * lib/mount_bsd.c:
69         - refine device closing in a race-free way
70         - add support for "-osubtype" on FreeBSD
72         * makeconf.sh: make it work under FreeBSD
74 2008-01-03  Csaba Henk <csaba.henk@creo.hu>
76         * lib/mount_bsd.c: close device before unmount
77         (cf. lib/mount.c rev. 1.43) and fix some warnings 
79 2007-12-23  Miklos Szeredi <miklos@szeredi.hu>
81         * Fix './configure --disable-static'.  Patch from Ismail Dönmez
83 2007-12-17  Miklos Szeredi <miklos@szeredi.hu>
85         * Released 2.7.2
87 2007-12-12  Miklos Szeredi <miklos@szeredi.hu>
89         * Fix kernel module compile for 2.6.24
91         * Invalidate attributes of parent directory after create(), since
92         the modification time changes.  Invalidate attributes on rename,
93         since some filesystems may update st_ctime.  Reported by Szabolcs
94         Szakacsits
96         * Fix NFS exporting to handle 64bit node IDs
98         * Disable old symbol versions if __UCLIBC__ is defined.  If a
99         symbol in a library has multiple versions, the runtime linker in
100         uClibc seems to randomly choose between them.
102         * Remove erroneous 'fuse_opt_insert_arg@FUSE_2_5' from
103         fuse_version_script.  fuse_opt_free_args() was added in fuse-2.6.
105         * Close fuse device file descriptor before calling umount(),
106         preventing a deadlock when umount is synchronous.  Reported by
107         Szabolcs Szakacsits
109 2007-11-12  Miklos Szeredi <miklos@szeredi.hu>
111         * 'fusermount -u' did not umount the filesystem if /etc/mtab was a
112         symlink.  This bug was introduced in 2.7.1 by "Don't call
113         /bin/[u]mount if /etc/mtab is a symlink".  Found by robertsong.
115 2007-10-16  Miklos Szeredi <miklos@szeredi.hu>
117         * Released 2.7.1
119 2007-10-16  Miklos Szeredi <miklos@szeredi.hu>
121         * Clarify licence version to be "LGPLv2" for the library
123         * kernel fixes:
125         * After mount set nlink attribute for the root inode to 1
127         * Fix wake up of task waiting for a reserved request
129         * Fix allowing setattr, listxattr and statfs for other users
131 2007-09-18  Miklos Szeredi <miklos@szeredi.hu>
133         * Add missing context initialization in fuse_fs_chmod().  Bug
134         found by "iohead"
136         * Fix kernel module compilation for 2.6.23.  Based on patch by
137         Marian Marinov
139 2007-09-04  Philippe Elie  <phil.el@wanadoo.fr>
141         * lib/fuse_lowlevel.c: fix a fuse_req leak in do_forget()
143 2007-07-31  Miklos Szeredi <miklos@szeredi.hu>
145         * Work around hotplug issue, that it calls filesystem with file
146         descriptors 0, 1 and 2 not open.  Tracked down by Leif Johnson
148 2007-07-25  Miklos Szeredi <miklos@szeredi.hu>
150         * Don't call /bin/[u]mount if /etc/mtab is a symlink.  Reported by
151         Tomas M
153         * Also don't touch /etc/mtab if it is within the mounted
154         filesystem.  Suggested by Jeffrey Law
156 2007-07-12  Miklos Szeredi <miklos@szeredi.hu>
158         * Reset args->argc in fuse_opt_free_args().  Patch by Lucas
159         C. Villa Real
161 2007-07-02  Miklos Szeredi <miklos@szeredi.hu>
163         * Released 2.7.0
165 2007-07-02  Miklos Szeredi <miklos@szeredi.hu>
167         * Accept a NULL "op" for fuse_main(), etc.  This is useful if
168         filesystem is only invoking fuse to print a help message, or
169         version.  Fixes RedHat bugzilla #217343
171 2007-06-22  Miklos Szeredi <miklos@szeredi.hu>
173         * lib: fix locking when loading a filesystem module
175 2007-06-21  Miklos Szeredi <miklos@szeredi.hu>
177         * Add fs subtype support to mount.fuse
179 2007-06-20  Miklos Szeredi <miklos@szeredi.hu>
181         * Add fs subtype support to libfuse and fusermount
183 2007-06-19  Miklos Szeredi <miklos@szeredi.hu>
185         * kernel: sync with mainline (2.6.22)
187 2007-06-18  Miklos Szeredi <miklos@szeredi.hu>
189         * Send debug output to stderr instead of stdout.  Patch by Jan
190         Engelhardt
192 2007-06-03  Miklos Szeredi <miklos@szeredi.hu>
194         * libulockmgr: Work around a kernel bug in recv(), causing it to
195         sometimes return zero even if data was available on the socket.
197 2007-05-29  Miklos Szeredi <miklos@szeredi.hu>
199         * lib: optimization: store parent pointer in node instead of
200         parent id
202 2007-05-25  Miklos Szeredi <miklos@szeredi.hu>
204         * lib: don't create new thread for each FORGET request.  FORGET
205         messages sometimes caused so many threads to be created, that
206         process virtual memory space ran out.  Reported by Chris AtLee
208 2007-05-24  Miklos Szeredi <miklos@szeredi.hu>
210         * lib: fix memory leak on thread creation failure in multithreaded
211         event loop.  Found by Chris AtLee
213 2007-05-23  Miklos Szeredi <miklos@szeredi.hu>
215         * lowlevel lib: add fuse_reply_iov function, which is similar to
216         fuse_reply_buf, but accepts a vector of buffers.  Patch by Roger
217         Willcocks
219 2007-05-21  Miklos Szeredi <miklos@szeredi.hu>
221         * Fix Oops or error if a regular file is created with mknod(2) on
222         a fuse filesystem.  Kernels 2.6.18 onward are affected.  Thanks to
223         J. Cameijo Cerdeira for the report
225 2007-05-11  Csaba Henk <csaba.henk@creo.hu>
227         * libfuse: fix return value of fuse_loop()/fuse_loop_mt().
228         Error reported by Csaba Henk, fix by Miklos Szeredi
230         * libfuse: fix unlock in flush
232         * libfuse: do unlocking on RELEASE+FLUSH
234 2007-05-03  Miklos Szeredi <miklos@szeredi.hu>
236         * Released 2.7.0-rc1
238 2007-05-02  Miklos Szeredi <miklos@szeredi.hu>
240         * kernel: sync with mainline:
242         * Use invalidate_mapping_pages() if available
244         * Fix BUG when invalid file type is supplied in mount. Patch by
245         Timo Savola
247 2007-04-27  Miklos Szeredi <miklos@szeredi.hu>
249         * libfuse: call umount(8) directly instead of fusermount if
250         possible
252         * Clean up init script, make it LSB compliant
254 2007-04-26  Miklos Szeredi <miklos@szeredi.hu>
256         * In multithreaded loop, use a semaphore instead of SIGHUP to wake
257         up the main thread on umount.  This is more elegant, and works
258         even if signals are blocked.
260 2007-04-25  Miklos Szeredi <miklos@szeredi.hu>
262         * Improve mounting support in libfuse:
263          - check non-empty mountpoint
264          - only fall back to fusermount when necessary
266 2007-04-23  Miklos Szeredi <miklos@szeredi.hu>
268         * Don't chdir to "/" in foreground mode, it causes more trouble
269         than it's worth
271 2007-04-18  Miklos Szeredi <miklos@szeredi.hu>
273         * Replace utils/mount.fuse "sh" script with a "C" program
275 2007-04-15  Miklos Szeredi <miklos@szeredi.hu>
277         * Add -lulockmgr to compilation comment in fusexmp_fh.c
279 2007-04-05  Miklos Szeredi <miklos@szeredi.hu>
281         * Check for iconv.  Patch by Csaba Henk
283         * Add direct umounting
285         * Use "fusectl" as the device for the fusectl filesystem.  Debian
286         Bug#417945.  Reported by Laurent Bonnaud
288 2007-04-01  Csaba Henk <csaba.henk@creo.hu>
290         * Fix some FreeBSD related macros.
292 2007-03-30  Miklos Szeredi <miklos@szeredi.hu>
294         * Add support for direct mounting by libfuse.  Fall back on
295         calling fusermount if it doesn't work
297 2007-03-14  Miklos Szeredi <miklos@szeredi.hu>
299         * Released 2.7.0-pre1
301 2007-03-05  Miklos Szeredi <miklos@szeredi.hu>
303         * Correctly handle O_APPEND in direct IO mode.  Reported by Greg
304         Bruno
306         * mount.fuse should use /bin/bash.  Debian Bug#413403.  Reported
307         by Thomas Weinbrenner
309 2007-02-26  Miklos Szeredi <miklos@szeredi.hu>
311         * Fix detection of installed fuse in init script.  Reported and
312         fix suggested by Davide Canova
314 2007-02-05  Miklos Szeredi <miklos@szeredi.hu>
316         * Fix 2.6.9 RHEL kernels, which have compatibility mutex.h, but
317         don't define mutex_destroy(), bummer.  Patch from Phil Schwan
319 2007-02-04  Miklos Szeredi <miklos@szeredi.hu>
321         * Compile fuseblk for kernels which don't have an option to turn
322         off the block layer (CONFIG_BLOCK).  Reported by Szakacsits
323         Szabolcs
325 2007-02-03  Miklos Szeredi <miklos@szeredi.hu>
327         * Add filesystem stacking support to high level API.  Filesystem
328         modules can be built into libfuse or loaded from shared object
329         (.so) files
331         * Add 'subdir' and 'iconv' built in modules
333         * lib/fuse.c: Fix locking for the reply code in create and open
335 2007-02-02  Miklos Szeredi <miklos@szeredi.hu>
337         * kernel: make it compile on "strange" kernels which have emulated
338         mutexes via <linux/mutex.h> but no i_mutex.  Reported by Tomasz
339         Mateja
341 2007-01-28  Miklos Szeredi <miklos@szeredi.hu>
343         * kernel: fix BUG in control filesystem if it is umounted and
344         mounted again, while some fuse filesystems are present.
345         Bugreport from Florent Mertens
347         * kernel: sync with mainline, support 2.6.20
349 2007-01-22  Miklos Szeredi <miklos@szeredi.hu>
351         * lib/Makefile.am: actually link libfuse against libfuse_libs
353 2007-01-19  Miklos Szeredi <miklos@szeredi.hu>
355         * Build fix for 2.6.16 vanila and 2.6.15 FC5 kernels.  Patch from
356         Ian Abbott
358 2007-01-18  Miklos Szeredi <miklos@szeredi.hu>
360         * Fix abort in fuse_new() compatibility API for opts == NULL case.
361         Novell bugzilla #233870.  Patch from Takashi Iwai.
363 2007-01-13  Miklos Szeredi <miklos@szeredi.hu>
365         * Fix option parsing in mount.fuse.  Patch from Jens M. Noedler
367 2007-01-02  Miklos Szeredi <miklos@szeredi.hu>
369         * Fix unaligned access in file desctriptor passing in libfuse,
370         fusermount and ulockmgr.  Debian bug ID: 404904.  Reported and
371         tested by Sebastian Fontius
373 2006-12-16  Miklos Szeredi <miklos@szeredi.hu>
375         * kernel: don't keep unreferenced inodes in the icache.
377 2006-12-15  Miklos Szeredi <miklos@szeredi.hu>
379         * fusermount: Fix detection of fuseblk.  Reported by Szakacsits
380         Szabolcs
382         * lib: Fix use after free in fuse_flush().  Reported by Ron
383         Lindman
385 2006-12-10  Miklos Szeredi <miklos@szeredi.hu>
387         * mount.fuse: add "setuid=USER" option which does a "su - USER"
388         for the filesystem
390         * fusermount: use "/bin/mount -f" to add entry to /etc/mtab, and
391         "/bin/umount" to remove entry from /etc/mtab.  This gets rid of
392         the ugly code dealing with mtab, as well as a possible race
393         between fusermount and mount trying to modify /etc/mtab at the
394         same time
396         * Fix "buffer size too small: 4" warning for users of the
397         fuse_loop_mt_proc() function.
399 2006-12-04  Miklos Szeredi <miklos@szeredi.hu>
401         * Fix warnings with gcc-4.1 on 64bit archs.  Report from
402         Harshavardhana
404         * Add extra warning options, and fix resulting warnings
406         * Really fix fuse_teardown problem
408 2006-12-02  Miklos Szeredi <miklos@szeredi.hu>
410         * Add -lrt to fuse.pc (if needed) to fix static linking against
411         libfuse.  Reported by Szakacsits Szabolcs
413 2006-12-01  Miklos Szeredi <miklos@szeredi.hu>
415         * Released 2.6.1
417 2006-11-30  Miklos Szeredi <miklos@szeredi.hu>
419         * Fix API version 21 and 22 compatibility for fuse_teardown.
420         Reported by Bgs
422 2006-11-29  Miklos Szeredi <miklos@szeredi.hu>
424         * fusermount: Print a more helpful message in case the kernel
425         doesn't support the 'fuseblk' filesystem type.  This has been
426         biting ntfs-3g users.  Reported by Yura Pakhuchiy
428         * kernel: fix build problem for "make -C ...".  Reported by
429         Stephen Bryant
431 2006-11-19  Miklos Szeredi <miklos@szeredi.hu>
433         * Fix bug in certain error paths of lookup routines.  The request
434         object was reused for sending FORGET, which is illegal.  This bug
435         could cause an Oops in linux-2.6.18 or in fuse-2.6.0, and might
436         silently corrupt memory in earlier versions.  Report and test
437         program by Russ Cox
439 2006-11-11  Miklos Szeredi <miklos@szeredi.hu>
441         * Print an error if an incompatible kernel interface version is
442         detected in INIT.  This will only show if filesystem is started
443         with -d or -f
445         * Fix order of fuse_destroy()/fuse_unmount() in error cleanup of
446         fuse_setup_common().  Reported by Szakacsits Szabolcs
448 2006-11-06  Miklos Szeredi <miklos@szeredi.hu>
450         * Fix recursive locking in fuse_create().  Thanks to Takuya
451         Ishibashi for the bug report
453 2006-10-28  Miklos Szeredi <miklos@szeredi.hu>
455         * Fix automake problem.  Patch from Nix
457 2006-10-26  Miklos Szeredi <miklos@szeredi.hu>
459         * Fix mount.fuse to use /bin/sh instead of /bin/bash, which is not
460         always available on embedded systems.  Patch from Paul Smith
462         * Fix util/Makefile.am, so that failure to run update-rc.d or
463         device creation doesn't cause make to fail.  Reported by Paul
464         Smith
466 2006-10-21  Miklos Szeredi <miklos@szeredi.hu>
468         * Released 2.6.0
470 2006-10-18  Miklos Szeredi <miklos@szeredi.hu>
472         * fusermount: don't try to create a lock file if /etc/mtab is a
473         symlink.  Report and patch from Alexei Sheplyakov (debian bug
474         #393693)
476 2006-10-17  Miklos Szeredi <miklos@szeredi.hu>
478         * Minor changes, sync with mainline tree
480 2006-10-16  Miklos Szeredi <miklos@szeredi.hu>
482         * Released 2.6.0-rc3
484 2006-10-15  Miklos Szeredi <miklos@szeredi.hu>
486         * kernel: cleanups
488 2006-10-13  Miklos Szeredi <miklos@szeredi.hu>
490         * kernel: Fix compilation on patched 2.6.18 (fc6) and 2.6.19.
491         Report from David Shaw
493         * lib: Fix lost error on renaming a file. Report from David Shaw
495         * lib: Fix lost error on hiding open files (renaming to
496         .fuse_hiddenXXXX)
498         * kernel: Fix a rare hang on SMP/32bit on heavy filesystem
499         activity.  The cause of the bug was that some calls to
500         i_size_write() were not protected by a lock, and hence
501         i_size_seqcount could become corrupted.  This caused subsequent
502         calls to i_size_read() to spin forever.  This is a long standing
503         bug was probably introduced in version 2.2, and thought to be
504         related to NFS exporting (it's not).  It was reported by various
505         people, but Dana Henriksen has finally helped me to track it down,
506         so big thanks to him
508         * kernel: Protect against truncation of a swapfile
510 2006-10-10  Miklos Szeredi <miklos@szeredi.hu>
512         * kernel: Check for signature of super_operations->umount_begin().
513         Ubuntu kernel 2.6.17 seems to use the new signature found in
514         2.6.18.  Thanks to Florent Mertens for the report
516 2006-10-08  Miklos Szeredi <miklos@szeredi.hu>
518         * Make sure inode numers wrap around at 2^32.  This is needed on
519         dual 64bit/32bit architectures, because 32bit applications using
520         the non-largefile interface would otherwise break (EOVERFLOW error
521         would be returned by the stat() system call family)
523         * ulockmgr: handle the case, when a locking operation fails
524         because no more file desctriptors are available in
525         ulockmgr_server.  Also work around a Linux kernel bug (known to
526         exist for all Linux kernel versions <= 2.6.18) which may cause
527         sent file descriptors to be lost in the above case
529         * ulockmgr: optimize file descriptor use
531         * restore needed cpp flags to util/Makefile.am
533         * Install udev rules as 99-fuse.rules instead of 60-fuse.rules
535         * Minor clean up of udev rules
537         * Add a synchronous DESTROY message to kernel interface.  This is
538         invoked from umount, when the final instance of the filesystem is
539         released.  It is only sent for filesystems mounted with the
540         'blkdev' option for security reasons.
542         * If the DESTROY message is received, call the filesystem's
543         ->destroy() method.  In this case it's not called from session
544         destruction as it would be otherwise.
546 2006-10-01  Miklos Szeredi <miklos@szeredi.hu>
548         * Released 2.6.0-rc2
550 2006-10-01  Miklos Szeredi <miklos@szeredi.hu>
552         * Add support for FLUSH+RELEASE operation for FreeBSD.  Original
553         patch by Csaba Henk
555         * Add init script to insert fuse module and mount the control
556         filesystem.  The script is installed as /etc/init.d/fuse and on
557         debian based systems (where update-rc.d is available) symlinks
558         from /etc/rc*.d/ are also installed.
560         * Include '#define FUSE_USE_VERSION=XX' into examples so they
561         become more self contained.
563 2006-09-30  Miklos Szeredi <miklos@szeredi.hu>
565         * API changes:
567         * Move lock_owner from a separate argument into fuse_file_info
569         * Add a flag to fuse_file_info indicating (1) a highlevel lock
570         operation (unlock all) was initiated by a flush, (2) a lowlevel
571         release operation should perform a flush as well.
573         * fusermount: revert modprobe change (2006-08-18) since it
574         doesn't work reliably with udev
576         * Add support for block device backed filesystems.  This mode is
577         selected with the 'blkdev' option, which is privileged.
579         * Add support for the bmap (FIBMAP ioctl) operation on block
580         device backed filesystems.  This allows swapon and lilo to work on
581         such filesystems.
583         * kernel changes:
585         * Drop support for kernels earlier than 2.6.9.  Kernel module from
586         previous (2.5.x) release can be used with library from this
587         release
589         * In fuse_dentry_revalidate() use dget_parent() instead of
590         dereferencing d_parent, since there's no protection against parent
591         changing and going away
593         * Protect nlookup from concurrent updates
595         * In lookup if a directory alias exists but is unused,
596         then get rid of it, otherwise return -EBUSY.
598         * In mkdir if a directory alias exists, return success, but leave
599         dentry negative.  In reality this could happen if a remote rename
600         immediately followed the mkdir.
602         * Don't BUG in fuse_iget() if multiple retries are needed to get a
603         good inode.  This could happen if several lookups are racing for
604         the same inode.
606 2006-09-29  Miklos Szeredi <miklos@szeredi.hu>
608         * Fix compilation on 2.6.9.  Report from Troy Ayers
610 2006-09-27  Miklos Szeredi <miklos@szeredi.hu>
612         * Fix Oops in fuse_readpages().  Reported by David Shaw
614 2006-09-24  Csaba Henk <csaba.henk@creo.hu>
616         * Add support for nanosec times on FreeBSD
618         * Fix FreeBSD compatibility issues
620 2006-09-23  Miklos Szeredi <miklos@szeredi.hu>
622         * Fix one more compatibility bug.  Thanks to Ricardo Correia
624         * Fix utimens compilation with uClibc.  Patch from Jamie Guinan
626 2006-09-22  Miklos Szeredi <miklos@szeredi.hu>
628         * Fixed several compatibility bugs in low level interface.
629         Reported by Ricardo Correia
631         * Add workaround for ARM caching bug
633 2006-09-16  Miklos Szeredi <miklos@szeredi.hu>
635         * Rename new utimes() method to more logical utimens()
637 2006-09-14  Miklos Szeredi <miklos@szeredi.hu>
639         * Fuse tried to unlink already unlinked hidden files.  Bug
640         reported by Milan Svoboda
642 2006-09-10  Miklos Szeredi <miklos@szeredi.hu>
644         * Released 2.6.0-rc1
646 2006-09-10  Miklos Szeredi <miklos@szeredi.hu>
648         * kernel: Fix unlock on close for kernels < 2.6.18
650         * Add ulockmgr library & server.  This can be used for handling
651         file locking requests either directly from libfuse or over a
652         network, etc.  This first version is not optimized and the number
653         of file descriptors it uses may get out of hand
655 2006-09-07  Miklos Szeredi <miklos@szeredi.hu>
657         * lib: Add interrupt support to high level library, which may be
658         enabled with the 'intr' mount option.
660         * When an operation is interrupted the thread handling that
661         operation will receive SIGUSR1 (or other signal specified with the
662         'intr_signal=N' option).  The library installs a no-op signal
663         handler for this signal, unless there's already a handler
664         installed.
666         * The filesystem may query interrupt status (regardless of 'intr')
667         with the fuse_interrupted() function.
669         * mount.fuse: initialize $HOME if not set.  Report from Sven Goldt
671 2006-09-03  Miklos Szeredi <miklos@szeredi.hu>
673         * lib: Multithreaded loop now allows unlimited number of threads.
674         This is needed for locking operations which may block
675         indefinitely.  Also the kernel now doesn't limit the number of
676         outstanding requests so the library shouldn't do so either.
678 2006-09-01  Miklos Szeredi <miklos@szeredi.hu>
680         * Fix recursive lock bug in interrupt handling
682         * Add utimes() method to highlevel interface, which supports
683         setting times with nanosecond resolution
685 2006-08-18  Miklos Szeredi <miklos@szeredi.hu>
687         * kernel: fix page leak if fuse_readpages() failed in it's
688         initialization.  Bug found and original patch from Alexander
689         Zarochentsev
691         * For linux kernels >=2.6.18 (2.6.19 if using the fuse module from
692         the kernel tree) the statfs method will receive the path within
693         the filesystem on which the stat(v)fs syscall was called
695         * fusermount: try to modprobe fuse module if invoked by root and
696         unable to open device.  This is needed with udev, since the device
697         node will be created only when the module is inserted, hence
698         module autoloading won't work.  Reported by Szakacsits Szabolcs
700 2006-07-30  Miklos Szeredi <miklos@szeredi.hu>
702         * fusermount: if selinux is active, restore the original file's
703         security context in unmount_rename().  Redhat bugzilla id 188561.
704         Patch from Yves Perrenoud
706         * Add POSIX file locking operation to high level library
708         * Initialize context for unlink of hidden files on umount.  Bug
709         reported by Tim Stoakes
711 2006-07-14  Miklos Szeredi <miklos@szeredi.hu>
713         * Multiple release() calls can race with each other, resulting in
714         the hidden file being deleted before the last release finishes.
715         Bug found and patch tested by Mark Huijgen
717 2006-07-05  Miklos Szeredi <miklos@szeredi.hu>
719         * fusermount: if /dev/fuse doesn't exist, suggest modprobing fuse;
720         this makes sense on systems using udev.  Reported by Szakacsits
721         Szabolcs
723 2006-06-29  Miklos Szeredi <miklos@szeredi.hu>
725         * Released 2.6.0-pre3
727 2006-06-29  Miklos Szeredi <miklos@szeredi.hu>
729         * Support in kernel module for file locking and interruption.  The
730         same functionality is available in official kernels >= 2.6.18
732 2006-06-28  Miklos Szeredi <miklos@szeredi.hu>
734         * Add POSIX file locking support
736         * Add request interruption
738 2006-06-06  Miklos Szeredi <miklos@szeredi.hu>
740         * Add missing pthread_rwlock_destroy().  Patch from Remy Blank
742 2006-06-05  Remy Blank <remy.blank@pobox.com>
744         * lib: canonicalize mount point in fuse_helper_opt_proc() so that
745         unmounting succeeds even if mount point was relative.
747 2006-06-04  Csaba Henk <csaba.henk@creo.hu>
749         * lib: fix emergency umount in helper.c when malloc fails.
750         (The way it was done would end up in a segfault.)
752 2006-06-01  Csaba Henk <csaba.henk@creo.hu>
754         * lib: adjust threading related compiler flags.
755         Switch to "-pthread" from "-lpthread" as that's the preferred
756         one on several platforms. Consulted with Terrence Cole and
757         Miklos Szeredi
759 2006-05-08  Miklos Szeredi <miklos@szeredi.hu>
761         * lib: search fusermount in installation directory (bindir) as
762         well as in PATH.
764 2006-05-03  Miklos Szeredi <miklos@szeredi.hu>
766         * lib: fix compilation if CLOCK_MONOTONIC is not defined.
767         Reported by Christian Magnusson
769 2006-04-23  Csaba Henk <csaba.henk@creo.hu>
771         * lib: make FreeBSD mount routine recognize if kernel features
772         backgrounded init and if it does, run the mount util in foreground
773         (similarly to Linux)
775 2006-04-21  Miklos Szeredi <miklos@szeredi.hu>
777         * kernel: fix fput deadlock fix, the lockless solution could lead
778         to "VFS: busy inodes after umount..."
780         * kernel: fix race between checking and setting file->private_data
781         for the device.  Found by Al Viro
783 2006-04-11  Miklos Szeredi <miklos@szeredi.hu>
785         * kernel: remove request pool, instead allocate requests on
786         demand.  Account the number of background requests, and if they go
787         over a limit, block the allocation of new requests.
789         * kernel: fix deadlock if backgrounded request holds the last
790         reference to the super block
792         * kernel: don't use fuse_reset_request() during direct I/O
794 2006-04-06  Csaba Henk <csaba.henk@creo.hu>
796         * lib: Let FreeBSD mount option parsing routine recognize "no"
797         prefixes for FUSE specific options as well
799 2006-04-01  Miklos Szeredi <miklos@szeredi.hu>
801         * lib: Add missing rwlock initialization.  Patch by Ryan Bradetich
803 2006-03-17  Miklos Szeredi <miklos@szeredi.hu>
805         * API changes:
807         * fuse_main(), fuse_setup() and fuse_new() have an additionl
808         user_data parameter
810         * fuse_mount() returns a 'struct fuse_chan' pointer instead of a
811         file descriptor
813         * fuse_unmount() receives a 'struct fuse_chan' pointer.  It
814         destroys the given channel
816         * fuse_teardown() no longer has a file descriptor parameter
818         * new exported functions: fuse_session_remove_chan(),
819         fuse_get_session(), fuse_daemonize()
821         * fuse_chan_recv() may now return a new channel which will be used
822         to send the reply
824 2006-03-16  Miklos Szeredi <miklos@szeredi.hu>
826         * Released 2.6.0-pre2
828 2006-03-16  Miklos Szeredi <miklos@szeredi.hu>
830         * Don't unmount if already unmounted.  This fixes a problem seen
831         in the following situation: Lazy unmount a busy filesystem; Mount
832         a new one in top; When the first finally unmounts, the second also
833         unmounts.  Reported by Franco Broi
835 2006-03-15  Miklos Szeredi <miklos@szeredi.hu>
837         * lowlevel lib: use indirect function calls instead of a
838         switch/case construct.  Besides increased efficiency it helps
839         maintainability & readability too.  Patch from Florin Malita
841 2006-03-13  Miklos Szeredi <miklos@szeredi.hu>
843         * kernel: replace global spinlock with a per-connection spinlock
845 2006-03-10  Miklos Szeredi <miklos@szeredi.hu>
847         * Fix source compatibility breakage for fuse_unmount().  Report
848         from Yura Pakhuchiy
850 2006-03-02  Miklos Szeredi <miklos@szeredi.hu>
852         * Fix O_ASYNC handling in fuse_dev_release().  From Jeff Dike
854 2006-03-01  Miklos Szeredi <miklos@szeredi.hu>
856         * Add O_ASYNC and O_NONBLOCK support to FUSE device.  Patch by
857         Jeff Dike
859         * Renamed fuse_chan_receive() to fuse_chan_recv() and changed
860         interface to return -errno in case of error.
862 2006-03-01  Csaba Henk <csaba.henk@creo.hu>
864         * libfuse: pass device file descriptor to fuse_unmount(), rewrite
865         FreeBSD implementation so that it uses libc (sysctl backed) instead
866         of an embdedded script (kmem backed). Adjust the control flow of
867         hello_ll so that device doesn't get closed before unmount attempt.
869 2006-02-25  Miklos Szeredi <miklos@szeredi.hu>
871         * Lowlevel lib: return all-zero statvfs data if filesystem doesn't
872         implement method.  This is needed on FreeBSD, and nicer on Linux
873         too.  Highlevel lib already did this.  Reported by Csaba Henk
875         * Fix negative entry handling.  There was a bug, that negative
876         lookups with timeouts (nodeid == 0) returned -EIO.
878 2006-02-23  Miklos Szeredi <miklos@szeredi.hu>
880         * Fix race between RELEASE and UNLINK, which might leave
881         .fuse_hidden* files around
883 2006-02-21  Miklos Szeredi <miklos@szeredi.hu>
885         * fusexmp_fh: implement flush() method and call close() on the
886         open file descriptor.  This is needed if used on an NFS
887         filesystem, which buffers data until file is closed.  Franco Broi
888         spotted the situation when 'cp -p' failed to set the modification
889         time because of this.
891 2006-02-20  Miklos Szeredi <miklos@szeredi.hu>
893         * Released 2.6.0-pre1
895 2006-02-19  Miklos Szeredi <miklos@szeredi.hu>
897         * libfuse: fix use-after-free bug in interruptred reply_entry().
898         Patch from John Muir
900         * libfuse: fix wrong symbol versioning for fuse_mount.  Debian bug
901         ID: 352631.  Found by Stéphane Rosi
903 2006-02-17  Miklos Szeredi <miklos@szeredi.hu>
905         * Lowlevel lib: Unify fuse_dirent_size() and fuse_add_dirent()
906         into a single function fuse_add_direntry().  This cleans up the
907         interface and makes it possible to do stacking.
909 2006-02-16  Miklos Szeredi <miklos@szeredi.hu>
911         * Fix rare race betweeen abort and release caused by failed iget()
912         in fuse_create_open().
914         * Add 'ac_attr_timeout' option e.g. for filesystems which do their
915         own attribute caching.
917 2006-02-15  Miklos Szeredi <miklos@szeredi.hu>
919         * Work around FreeBSD runtime linker "feature" which binds an old
920         version of a symbol to internal references if the symbol has more
921         than one version.  This resulted in infinite recursion in
922         fuse_lowlevel_new_compat25().
924 2006-02-10  Csaba Henk <csaba.henk@creo.hu>
926         * Refine clock_gettime() querying so that linker options
927         shall be set as it's appropriate for the target platform.
929 2006-02-09  Miklos Szeredi <miklos@szeredi.hu>
931         * Fix udev rule syntax.  Reported by Nix
933 2006-02-08  Miklos Szeredi <miklos@szeredi.hu>
935         * In some cases udev rule seems to be ineffective when installed
936         as 40-fuse.rules but work as 60-fuse.rules.  Reported by John Hunt
938 2006-02-03  Miklos Szeredi <miklos@szeredi.hu>
940         * Fix compilation when build directory is different from source
941         directory.  Reported by Frédéric L. W. Meunier
943 2006-02-02  Miklos Szeredi <miklos@szeredi.hu>
945         * Fix even bigger bug introduced in fix for request_end() on
946         2006-01-14.  Reported by Gal Rosen
948 2006-01-30  Miklos Szeredi <miklos@szeredi.hu>
950         * highlevel-lib: add 'auto_cache' option.  This caches file data
951         based on modification time and size
953 2006-01-20  Miklos Szeredi <miklos@szeredi.hu>
955         * Sanitize storage type and help message in mount_bsd.c.  Patch
956         from Csaba Henk
958         * fuse_opt: add new helper constants FUSE_OPT_KEY_KEEP and
959         FUSE_OPT_KEY_DISCARD
961         * Add options 'max_readahead', 'sync_read' and 'async_read'
963         * Kernel ABI version 7.6:
965         * Negotiate the 'max_readahead' value and 'async_read' flags with
966         userspace in the INIT method
968         * Add connection info to ->init() methods to both lowlevel and
969         highlevel API
971         * Fall back to synchronous read() behavior if either library or
972         userspace filesystem is using the old interface version.  This is
973         needed so non-updated filesystems won't be confused by the
974         different read() behavior
976 2006-01-19  Miklos Szeredi <miklos@szeredi.hu>
978         * lib: if "fsname=" option was given, pass it to fusermount
980         * fuse_opt: add new fuse_opt_insert_arg() function, which is
981         needed by filesystems to implement some argument manipulations
982         correctly
984         * fuse_opt: fix memory leak in handling "--" option
986 2006-01-18  Miklos Szeredi <miklos@szeredi.hu>
988         * kernel: fix detection of case when fuse is not configured into
989         the kernel either as module or built-in
991         * fuse_opt.h: fix incompatibility with C++ compilers by renaming
992         'template' structure member to 'templ'.  Reported by Takashi Iwai
994         * fuse.h: fix compatibility bugs.  Patch by Yura Pakhuchiy
996         * kernel: support version 2.6.16 (i_sem -> i_mutex)
998 2006-01-16  Miklos Szeredi <miklos@szeredi.hu>
1000         * Added (again) asynchronous readpages support
1002         * Each connection now shows up under /sys/fs/fuse/connections
1004         * Connection attributes exported to sysfs: 'waiting' number of
1005         waiting requests; 'abort' abort the connection
1007         * Connection may be aborted through either the sysfs interface or
1008         with 'umount -f mountpoint'
1010 2006-01-14  Miklos Szeredi <miklos@szeredi.hu>
1012         * Released 2.5.0
1014 2006-01-14  Miklos Szeredi <miklos@szeredi.hu>
1016         * kernel: fix a couple of bugs
1018         * Order of request_end() and fuse_copy_finish() was wrong.
1019         Posthumous note: Franco Broi managed to exploit this, though it
1020         seemed quite impossible
1022         * request_end() used request pointer after decrementing refcount
1024         * Clearing ->connected or ->mounted connection flags could race
1025         with setting other bitfields not protected with a lock
1027 2006-01-10  Miklos Szeredi <miklos@szeredi.hu>
1029         * kernel: add necessary compile flags for 2.4.X/x86_64.
1030         Report from Sean Ziegeler
1032 2006-01-09  Miklos Szeredi <miklos@szeredi.hu>
1034         * Released 2.5.0-pre2
1036 2006-01-09  Miklos Szeredi <miklos@szeredi.hu>
1038         * Applied patch from Csaba Henk, to update mount_bsd to new
1039         fuse_mount() semantics
1041         * Ignore auto,noauto,... options in mount.fuse.  Reported by Frank
1042         Steiner and Don Taber
1044         * fusermount: add 'dirsync' mount option
1046 2006-01-07  Miklos Szeredi <miklos@szeredi.hu>
1048         * Improved help reporting and added version reporting to library
1050 2006-01-06  Miklos Szeredi <miklos@szeredi.hu>
1052         * Change working directory to "/" even if running in the
1053         foreground.  Patch from Jonathan Brandmeyer
1055         * Changed lots of functions to use 'struct fuse_args' instead of
1056         separate argc and argv
1058         * Added fuse_parse_cmdline(), fuse_set_signal_handlers() and
1059         fuse_remove_signal_handlers() functions, so that it's now pretty
1060         easy to get all the functionality of fuse_main() with a filesystem
1061         using the lowlevel API.
1063 2006-01-02  Miklos Szeredi <miklos@szeredi.hu>
1065         * mount.fuse: the 'user' option should be ignored. Report and
1066         solution from Mattd.
1068         * mount.fuse: export PATH in the right place. Report and patch
1069         from Hannes Schweizer
1071 2005-12-16  Miklos Szeredi <miklos@szeredi.hu>
1073         * Clean up the option parsing interface slightly, by creating an
1074         "argument list" structure, that contains the argument vector and
1075         count
1077 2005-12-15  Miklos Szeredi <miklos@szeredi.hu>
1079         * fusermount: check if /mnt/mtab is a symlink and don't modify it
1080         in that case
1082         * kernel: simplify request size limiting. INIT only contains
1083         maximum write size, maximum path component size remains fixed at
1084         1024 bytes, and maximum xattr size depends on read buffer.
1086 2005-12-14  Miklos Szeredi <miklos@szeredi.hu>
1088         * Fix readdir() failure on x86_64, of 32bit programs compiled
1089         without largefile support.  Bug report and help from Anthony
1090         Kolasny
1092         * If lookup returns invalid mode, return -EIO instead of creating
1093         a regular file
1095         * Add current output argument vector to option processing
1096         function
1098 2005-12-12  Miklos Szeredi <miklos@szeredi.hu>
1100         * Fix stale code in ifdef FreeBSD.  Patch from Csaba Henk
1102 2005-12-09  Miklos Szeredi <miklos@szeredi.hu>
1104         * Released 2.5.0-pre1
1106 2005-12-09  Miklos Szeredi <miklos@szeredi.hu>
1108         * libfuse: added option parsing interface, defined in
1109         <fuse_opt.h>.
1111 2005-12-07  Miklos Szeredi <miklos@szeredi.hu>
1113         * Return EIO for file operations (read, write, fsync, flush) on
1114         open files whose inode has become "bad".  Inodes will be marked
1115         "bad" if their type changes.  Bug report by Csaba Henk
1117 2005-12-06  Miklos Szeredi <miklos@szeredi.hu>
1119         * Use bigger request buffer size.  write() did not work on archs
1120         with > 4k page size, Bug report by Mark Haney
1122         * ABI version 7.5:
1124         * Extend INIT reply with data size limits
1126 2005-12-02  Miklos Szeredi <miklos@szeredi.hu>
1128         * Fix memory leak in fuse_read_cmd()/fuse_process_cmd().  Bug
1129         reported by Vincenzo Ciancia
1131         * Handle exit-by-umount in fuse_read_cmd()
1133 2005-11-29  Miklos Szeredi <miklos@szeredi.hu>
1135         * Check if '-msoft-float' option is supported by compiler when
1136         configuring for a 2.4.x kernel.  Bug report by Mark Haney
1138         * In multithreaded loop send a TERM signal to the main thread if
1139         one of the other threads exit.  Needed on FreeBSD for a clean exit
1140         on umount.  Should not cause any harm on Linux either
1142 2005-11-28  Miklos Szeredi <miklos@szeredi.hu>
1144         * Fix bug in 32-bit file handle compatibility
1146 2005-11-27  Miklos Szeredi <miklos@szeredi.hu>
1148         * Block TERM, INT, HUP and QUIT signals in all but the main
1149         thread.  According to POSIX it's not specified which thread will
1150         receive these signals.
1152         * Kernel changes:
1154         * Check for directory aliasing on mkdir, not just on lookup
1156         * Check for special node ID values in create+open operation
1158         * Sync with -mm: readv, writev, aio_read and aio_write methods
1159         added to file operations
1161         * Cleanups: lookup code, page offset calculation
1163         * ABI stepped to 7.4, changes:
1165         * frsize member added to fuse_kstatfs structure
1167         * added support for negative entry caching: on lowlevel API if
1168         fuse_entry_param::ino is set to zero in reply to a lookup request,
1169         the kernel will cache the dentry for the specified amount of time.
1171         * libfuse: added 'negative_timeout' option: specifies how much
1172         negative entries should be cached.  Default is zero, to be
1173         compatible with prior versions
1175 2005-11-22  Miklos Szeredi <miklos@szeredi.hu>
1177         * Add detection of mainline FUSE code in running kernel
1179 2005-11-21  Miklos Szeredi <miklos@szeredi.hu>
1181         * Don't use async cancelation in multithreaded loop.  This makes
1182         it more portable to systems where read() is not async cancel safe.
1183         Report from Andriy Gapon
1185 2005-11-20  Miklos Szeredi <miklos@szeredi.hu>
1187         * Warn if API version 11 compatibility is requested
1189 2005-11-17  Miklos Szeredi <miklos@szeredi.hu>
1191         * More FreeBSD merge
1193         * fusermount: don't allow mountpoints with '\n', '\t', or '\\' in
1194         them, because it corrupts /etc/mtab.  Found by Thomas Biege
1195         CVE-2005-3531
1197         * libfuse: don't use system() to invoke 'fusermount -u ...'
1198         because it breaks mountpoints with spaces in them into multiple
1199         arguments
1201 2005-11-16  Miklos Szeredi <miklos@szeredi.hu>
1203         * Merge library part of FreeBSD port.  Patch by Csaba Henk
1205 2005-11-11  Miklos Szeredi <miklos@szeredi.hu>
1207         * Use 64bit type for file handle, so the full range supported by
1208         the kernel interface is available to applications
1210 2005-11-10  Miklos Szeredi <miklos@szeredi.hu>
1212         * Moved mountpoint argument checking from fuse_parse_cmdline() to
1213         fuse_mount() in preparation to FreeBSD merge.
1215 2005-11-08  Miklos Szeredi <miklos@szeredi.hu>
1217         * Remove unneeded close() from fuse_teardown().  Spotted by Csaba
1218         Henk.
1220 2005-11-07  Miklos Szeredi <miklos@szeredi.hu>
1222         * Make the statfs change backwards compatible.
1224 2005-11-06  Miklos Szeredi <miklos@szeredi.hu>
1226         * Change ->statfs() method to use 'struct statvfs' instead of
1227         'struct statfs'.  This makes the API more portable since statvfs()
1228         is defined by POSIX.
1230 2005-10-28  Miklos Szeredi <miklos@szeredi.hu>
1232         * Add fgetattr() method, which currently will only be called after
1233         a successful call to a create() method.
1235 2005-10-26  Miklos Szeredi <miklos@szeredi.hu>
1237         * Change kernel ABI version to 7.3
1239         * Add ACCESS operation.  This is called from the access() system
1240         call if 'default_permissions' mount option is not given, and is
1241         not called on kernels 2.4.*
1243         * Add atomic CREATE+OPEN operation.  This will only work with
1244         2.6.15 (presumably) or later Linux kernels.
1246         * Add ftruncate() method.  This will only work with 2.6.15
1247         (presumably) or later Linux kernels.
1249         * Fix kernel module compile if kernel source and build directories
1250         differ.  Report and initial patch by John Eastman
1252 2005-10-18  Miklos Szeredi <miklos@szeredi.hu>
1254         * lib: optimize buffer reallocation in fill_dir.
1256 2005-10-17  Miklos Szeredi <miklos@szeredi.hu>
1258         * Released 2.4.1
1260 2005-10-14  Miklos Szeredi <miklos@szeredi.hu>
1262         * libfuse: add debug for write result (by Shaun Jackman) and
1263         warnings for too large read/write result
1265 2005-10-11  Miklos Szeredi <miklos@szeredi.hu>
1267         * Spelling fixes, thanks to Ioannis Barkas
1269 2005-10-10  Miklos Szeredi <miklos@szeredi.hu>
1271         * fuse_common.h: use extern "C".  Thanks to Valient Gough for the
1272         patch
1274 2005-10-07  Miklos Szeredi <miklos@szeredi.hu>
1276         * highlevel-lib: init() and destroy() methods didn't have an
1277         initialized fuse_context.  Bug reported by Tim Stoakes
1279 2005-10-04  Miklos Szeredi <miklos@szeredi.hu>
1281         * Released 2.4.0
1283 2005-10-03  Miklos Szeredi <miklos@szeredi.hu>
1285         * Add documentation to fuse_lowlevel.h
1287         * API cleanups:
1289         * Remove definitions of unused FATTR_CTIME / FUSE_SET_ATTR_CTIME
1291         * Move fuse_mount() and fuse_unmount() to fuse_common.h
1293         * Change the return type of fuse_reply_none() from int to void.
1295 2005-09-30  Miklos Szeredi <miklos@szeredi.hu>
1297         * kernel: NFS exporting leaked dentries.  Bug found and fixed by
1298         Akshat Aranya.
1300 2005-09-29  Miklos Szeredi <miklos@szeredi.hu>
1302         * fusermount: fix error message, when unable to open /dev/fuse.
1303         Report by Balázs Pozsár
1305 2005-09-28  Miklos Szeredi <miklos@szeredi.hu>
1307         * UClibc fixes from Christian Magnusson
1309 2005-09-27  Miklos Szeredi <miklos@szeredi.hu>
1311         * Added NAME="%k" to util/udev.rules.  Fix by Mattias Wadman.
1313 2005-09-26  Miklos Szeredi <miklos@szeredi.hu>
1315         * Released 2.4.0-rc1
1317 2005-09-26  Miklos Szeredi <miklos@szeredi.hu>
1319         * fusermount: allow user umount in the case when /etc/mtab is a
1320         symlink to /proc/mounts.  Reported by Balázs Pozsár.
1322 2005-09-23  Miklos Szeredi <miklos@szeredi.hu>
1324         * Check for special node ID values in lookup and creation
1326 2005-09-22  Miklos Szeredi <miklos@szeredi.hu>
1328         * Slight optimization in returning EINVAL error in case of an open
1329         with O_DIRECT flag.
1331 2005-09-20  Miklos Szeredi <miklos@szeredi.hu>
1333         * Remove '--enable-auto-modprobe' configure flag.  Module
1334         auto-loading is now handled by the kernel.
1336 2005-09-15  Miklos Szeredi <miklos@szeredi.hu>
1338         * Install UDEV rule file, so /dev/fuse is created with mode 0666.
1339         Help from Jens M. Noedler.
1341 2005-09-14  Miklos Szeredi <miklos@szeredi.hu>
1343         * Add memory cleanup on thread exit
1345 2005-09-13  Miklos Szeredi <miklos@szeredi.hu>
1347         * Set umask to zero in fusexmp and fusexmp_fh, so that
1348         files/directories are created with the requested mode.
1350 2005-09-12  Miklos Szeredi <miklos@szeredi.hu>
1352         * Don't ignore read error in multithreaded loop
1354 2005-09-08  Miklos Szeredi <miklos@szeredi.hu>
1356         * Released 2.4.0-pre2
1358 2005-09-08  Miklos Szeredi <miklos@szeredi.hu>
1360         * Revert lock and access operations.  Postpone these until 2.5.
1362 2005-09-02  Miklos Szeredi <miklos@szeredi.hu>
1364         * Fix compile warning on 2.6.13 and later
1366         * Fix compilation on old kernels
1368 2005-08-19  Miklos Szeredi <miklos@szeredi.hu>
1370         * lib: always refresh directory contents after rewinddir() to
1371         conform to SUS.  Bug found by John Muir.
1373 2005-08-15  Miklos Szeredi <miklos@szeredi.hu>
1375         * Released 2.4.0-pre1
1377 2005-08-14  Miklos Szeredi <miklos@szeredi.hu>
1379         * lib: cleaned up (or messed up, depending on your POV) the low
1380         level library API.  Hopefully this is close to the final form.
1382 2005-08-05  Miklos Szeredi <miklos@szeredi.hu>
1384         * fusermount: don't allow empty mountpoint argument, which defeats
1385         automatic umounting in fuse_main().  Bugreport by Václav Jůza
1387 2005-08-03  Miklos Szeredi <miklos@szeredi.hu>
1389         * fix warnings in fuse.h and fuse_lowlevel.h if -Wshadow compiler
1390         option is used (Paul Alfille).
1392 2005-08-02  Miklos Szeredi <miklos@szeredi.hu>
1394         * highlevel-lib: added mount options "attr_timeout" and
1395         "entry_timeout".  These options control the length of time file
1396         attributes and entries (names) are cached.  Both default to 1.0
1397         second.
1399         * kernel: correctly handle zero timeout for attributes and entries
1401 2005-08-01  Miklos Szeredi <miklos@szeredi.hu>
1403         * Added missing symbols to versionscript (Joshua J. Berry)
1405         * kernel: implement two flags, open can set: 'direct_io' and
1406         'keep_cache'.  These correspond exactly to mount options
1407         'direct_io' and 'kernel_cache', but allow a per-open setting.
1409         * Move 'direct_io' and 'kernel_cache' mount option handling to
1410         userspace.  For both mount options, if the option is given, then
1411         the respective open flag is set, otherwise the open flag is left
1412         unmodified (so the filesystem can set it).
1414         * lib (highlevel): make open method optional
1416 2005-07-28  Miklos Szeredi <miklos@szeredi.hu>
1418         * kernel: invalidate attributes for read/readdir/readlink
1419         operations
1421         * kernel: detect newer UML kernels
1423 2005-07-26  Miklos Szeredi <miklos@szeredi.hu>
1425         * Make the installation path of fuse.ko and mount.fuse
1426         configurable through INSTALL_MOD_PATH and MOUNT_FUSE_PATH
1427         environment variables.  Requirement and help from Csaba Henk.
1429 2005-07-22  Miklos Szeredi <miklos@szeredi.hu>
1431         * Fix bug, that causes filesystem requests to hang when unique
1432         request counter becomes negative.  This happens after
1433         2,147,483,648 operations, so most people won't care.  Thanks to
1434         Franco Broi for the report and testing.
1436 2005-07-21  Miklos Szeredi <miklos@szeredi.hu>
1438         * Don't change mtime/ctime/atime to local time on read/write.
1439         Bug reported by Ben Grimm
1441         * Install fuse_common.h and fuse_lowlevel.h.  Report by Christian
1442         Magnusson
1444         * fusermount: use getopt_long() for option parsing.  It allows the
1445         use of '--' to stop argument scanning, so fusermount can now
1446         operate on directories whose names begin with a '-'.  Patch by
1447         Adam Connell
1449 2005-07-15  Miklos Szeredi <miklos@szeredi.hu>
1451         * fusermount: add '-v', '--version' and '--help' options
1453         * add inode based API
1455 2005-07-12  Miklos Szeredi <miklos@szeredi.hu>
1457         * lib: don't block signals in worker threads.  Problem noticed by
1458         Usarin Heininga
1460 2005-07-07  Miklos Szeredi <miklos@szeredi.hu>
1462         * lib: don't allow both 'allow_other' and 'allow_root' options to
1463         be given
1465 2005-07-06  Miklos Szeredi <miklos@szeredi.hu>
1467         * fusermount: check if mountpoint is empty (only '.' and '..' for
1468         directories, and size = 0 for regular files).  If "nonempty"
1469         option is given, omit this check.  This is useful, so users don't
1470         accidentally hide data (e.g. from backup programs).  Thanks to
1471         Frank van Maarseveen for pointing this out.
1473         * kernel: check if mandatory mount options ('fd', 'rootmode',
1474         'user_id', 'group_id') are all given
1476         * lib: simplify 'readdir_ino' handling
1478         * lib: add mount options 'umask=M', 'uid=N', 'gid=N'
1480 2005-07-03  Miklos Szeredi <miklos@szeredi.hu>
1482         * kernel: clean up 'direct_io' code
1484 2005-06-28  Miklos Szeredi <miklos@szeredi.hu>
1486         * Add 'mount.fuse' written by Petr Klima
1488         * '/dev/fuse' is created by 'make install' if does not yet exist
1490 2005-06-20  Miklos Szeredi <miklos@szeredi.hu>
1492         * Fix UCLIBC compile error.  Patch by Christian Magnusson
1494 2005-06-08  Miklos Szeredi <miklos@szeredi.hu>
1496         * Enable the auto-loading of the module via access to the
1497         corresponding device file.  Patch by Takashi Iwai.
1499         * Allow mounting a regular file (over a regular file) for
1500         unprivleged users.
1502         * Do not create temporary device file.  Require "/dev/fuse" to
1503         exist, and be readable/writable by the mounting user.
1505 2005-06-02  Miklos Szeredi <miklos@szeredi.hu>
1507         * Released 2.3.0
1509 2005-06-02  Miklos Szeredi <miklos@szeredi.hu>
1511         * Fix serious information leak: if the filesystem returns a short
1512         byte count to a read request, and there are non-zero number of
1513         pages which are not filled at all, these pages will not be zeroed.
1514         Hence the user can read out previous memory contents.  Found by
1515         Sven Tantau.
1517 2005-05-27  Miklos Szeredi <miklos@szeredi.hu>
1519         * Add "readdir_ino" mount option, which tries to fill in the d_ino
1520         field in struct dirent.  This mount option is ignored if "use_ino"
1521         is used.  It helps some programs (e.g. 'pwd' used over NFS from a
1522         non-Linux OS).  Patch by David Shaw.
1524 2005-05-12  Miklos Szeredi <miklos@szeredi.hu>
1526         * Released 2.3-rc1
1528 2005-05-12  Miklos Szeredi <miklos@szeredi.hu>
1530         * File save in krusader and other editors doesn't work with sshfs,
1531         because open() is interrupted by a periodic signal, and open()
1532         restarts forever, without any progress.  This could just be fixed
1533         in open(), but the problem is more generic: if signals are
1534         received more often than the filesystem can get the request to
1535         userspace, it will never finish.  This is probably only a
1536         theoretical problem, nevertheless I'm removing the possibility to
1537         interrupt requests with anything other than SIGKILL, even before
1538         being sent to userspace.  Bugreport by Eduard Czimbalmos.
1540 2005-05-09  Miklos Szeredi <miklos@szeredi.hu>
1542         * libfuse: add "tree_lock" rwlock, that is locked for write in
1543         rename, unlink and rmdir, and locked for read in all other
1544         operations.  This should fix the rename/release race reported by
1545         Valient Gough and others.  The solution is very coarse, a finer
1546         grained locking scheme could be implemented, but it would be much
1547         more complex.  Let's see whether this is good enough.
1549 2005-05-09  Miklos Szeredi <miklos@szeredi.hu>
1551         * Released 2.3-pre7
1553 2005-05-08  Miklos Szeredi <miklos@szeredi.hu>
1555         * Better fix for out of order FORGET messages.  Now the
1556         LOOKUP/FORGET messages are balanced exactly (one FORGET can
1557         balance many lookups), so the order no longer matters.  This
1558         changes the kernel ABI slightly, but the library remains backward
1559         compatible.
1561 2005-05-06  Miklos Szeredi <miklos@szeredi.hu>
1563         * Fix abort for out of order FORGET messages.  Again.  Spotted by
1564         Franco Broi again.  Sorry :)
1566 2005-04-29  Miklos Szeredi <miklos@szeredi.hu>
1568         * Released 2.3-pre6
1570 2005-04-29  Miklos Szeredi <miklos@szeredi.hu>
1572         * Make fusermount work with fuse kernel modules not yet supporting
1573         the "group_id" option (added for the purpose of stricter
1574         permission checking).
1576 2005-04-28  Miklos Szeredi <miklos@szeredi.hu>
1578         * Check for hard-linked directories in lookup.  This could cause
1579         problems in the VFS, which assumes that such objects never exist.
1581         * Make checking of permission for other users more strict.  Now
1582         the same privilege is required for the mount owner as for ptrace
1583         on the process performing the filesystem operation.
1585 2005-04-23  Miklos Szeredi <miklos@szeredi.hu>
1587         * Released 2.3-pre5
1589 2005-04-22  Miklos Szeredi <miklos@szeredi.hu>
1591         * Add -msoft-float to kernel module compile flags for 2.4.X.  This
1592         is needed on certain architectures.  Report from Chris Kirby
1594         * Fix buggy behavior of open(..., O_CREAT|O_EXCL) if interrupted.
1595         Reported by David Shaw
1597         * Remove "allow_root" option from kernel module, and implement
1598         it's functionality in the library
1600         * Fix Oops caused by premature release of fuse_conn.  Clean up
1601         related code, to be more readable
1603         * Sendfile should not use page cache if "direct_io" mount option
1604         is given
1606 2005-04-08  Miklos Szeredi <miklos@szeredi.hu>
1608         * Fix Oops in case of nfs export.  Spotted by David Shaw
1610         * Fix another Oops in case of write over nfs with direct_io turned
1611         on.  Again spotted by David Shaw
1613 2005-04-07  Miklos Szeredi <miklos@szeredi.hu>
1615         * Released 2.3-pre4
1617 2005-04-07  Miklos Szeredi <miklos@szeredi.hu>
1619         * lib: finalized new readdir() interface, which now supersedes the
1620         getdir() method.
1622 2005-04-03  Miklos Szeredi <miklos@szeredi.hu>
1624         * Released 2.3-pre3
1626 2005-04-03  Miklos Szeredi <miklos@szeredi.hu>
1628         * Implement backward compatibility with version 5 kernel ABI
1630 2005-04-01  Miklos Szeredi <miklos@szeredi.hu>
1632         * Released 2.3-pre2
1634 2005-04-01  Miklos Szeredi <miklos@szeredi.hu>
1636         * kernel: fix dirent offset handling
1638         * lib: add readdir and releasedir methods
1640         * lib: use fh field of fuse_file_info in opendir, readdir,
1641         releasedir and fsyncdir methods
1643         * lib: check kernel API version and bail out of it's old.  This
1644         will be properly fixed in the next release
1646 2005-03-31  Miklos Szeredi <miklos@szeredi.hu>
1648         * Released 2.3-pre1
1650 2005-03-31  Miklos Szeredi <miklos@szeredi.hu>
1652         * kernel API: add padding to structures, so 64bit and 32bit
1653         compiler will return the same size
1655         * kernel API: add offset field to fuse_dirent.  This will allow
1656         more sophisticated readdir interface for userspace
1658         * kernel API: change major number to 6
1660         * kernel: fix warnings on 64bit archs
1662         * kernel: in case of API version mismatch, return ECONNREFUSED
1664 2005-03-24  Miklos Szeredi <miklos@szeredi.hu>
1666         * kernel: trivial cleanups
1668 2005-03-21  Miklos Szeredi <miklos@szeredi.hu>
1670         * Add fsyncdir() operation
1672 2005-03-19  Miklos Szeredi <miklos@szeredi.hu>
1674         * kernel: add locking to background list (fixes previous fix)
1676 2005-03-18  Miklos Szeredi <miklos@szeredi.hu>
1678         * kernel: fix bug which could cause leave busy inodes after
1679         unmount, and Oops.
1681 2005-03-08  Miklos Szeredi <miklos@szeredi.hu>
1683         * examples: add -lpthread to link flags to work around valgrind
1684         quirk
1686         * lib: don't exit threads, so cancelation doesn't cause segfault
1688 2005-03-04  Miklos Szeredi <miklos@szeredi.hu>
1690         * kernel: fix nasty bug which could cause an Oops under certain
1691         situations.  Found by Magnus Johansson
1693 2005-02-28  Miklos Szeredi <miklos@szeredi.hu>
1695         * libfuse: added opendir() method.  This can be used in case
1696         permission checking in getdir() is too late.  Thanks to Usarin
1697         Heininga for pointing out this deficiency
1699         * libfuse: added init() and destroy() methods to fuse_operations
1701         * kernel: llseek() method for files and directories made explicit
1703         * kernel: fixed inode leak in NFS export in case of nodeid
1704         wrapping
1706 2005-02-15  Miklos Szeredi <miklos@szeredi.hu>
1708         * libfuse: clean up some unitialized memory found with valgrind
1710         * Add -lpthread to Libs in fuse.pc.  Valgrind seems to need an
1711         explicitly linked libpthread for applications
1713 2005-02-10  Miklos Szeredi <miklos@szeredi.hu>
1715         * fusermount: set umask, otherwise /etc/mtab will have
1716         unpredictable permission.  Spotted by Jindrich Kolorenc
1718         * fusermount: set owner and group of /etc/mtab to original values
1719         on unmount
1721         * libfuse: add 'use_ino' option to help.  Patch by Valient Gough
1723 2005-02-07  Miklos Szeredi <miklos@szeredi.hu>
1725         * Cleaned up directory reading (temporary file is not used)
1727 2005-02-02  Miklos Szeredi <miklos@szeredi.hu>
1729         * Released 2.2
1731 2005-02-02  Miklos Szeredi <miklos@szeredi.hu>
1733         * Fix possible race when operation is interrupted
1735 2005-01-28  Miklos Szeredi <miklos@szeredi.hu>
1737         * Fix compilation on 2.6.7
1739 2005-01-26  Miklos Szeredi <miklos@szeredi.hu>
1741         * Released 2.2-pre6
1743 2005-01-26  Miklos Szeredi <miklos@szeredi.hu>
1745         * Fix bug in link() operation which caused the wrong path to be
1746         passed as the first argument.  Found by Anton Altaparmakov
1748 2005-01-21  Miklos Szeredi <miklos@szeredi.hu>
1750         * LIB: fix double reply in readdir operation
1752         * fusermount: fix uid checking bug.  Patch by Adam Connell
1754         * KERNEL: fix compile on various RedHat patched 2.4 kernels.
1755         Patch by Keshava Gowda
1757 2005-01-20  Miklos Szeredi <miklos@szeredi.hu>
1759         * KERNEL: provide correct llseek semantics for fuse device (fixes
1760         a bug on Progeny 2.4.20 kernel).  Reported by Valient Gough
1762 2005-01-20  Miklos Szeredi <miklos@szeredi.hu>
1764         * Released 2.2-pre5 (matches kernel 2.6.11-rc1-mm2)
1766 2005-01-18  Miklos Szeredi <miklos@szeredi.hu>
1768         * KERNEL ABI: remove GETDIR operation, and add OPENDIR, READDIR
1769         and RELEASEDIR.  This ends the ugly hack of passing a file
1770         descriptor to the kernel, and actually makes the code simpler.
1772 2005-01-17  Miklos Szeredi <miklos@szeredi.hu>
1774         * Released 2.2-pre4
1776 2005-01-17  Miklos Szeredi <miklos@szeredi.hu>
1778         * fusermount: remove capability setting, which was the cause of
1779         problems for some users.  It seems that FS related capabilities
1780         are removed by setfsuid(), so this isn't even needed.
1782 2005-01-15  Miklos Szeredi <miklos@szeredi.hu>
1784         * fix compilation on 2.4 kernels (reported by Valient Gough)
1786         * fix failure to unmount bug (found by David Shaw)
1788         * fusermount: improve parsing of /etc/fuse.conf
1790 2005-01-13  Miklos Szeredi <miklos@szeredi.hu>
1792         * Remove 'mount_max' and 'user_allow_other' module options.  These
1793         are now checked by fusermount, and can be set in /etc/fuse.conf
1795         * KERNEL: change check for fsid == 0 to capable(CAP_DAC_OVERRIDE)
1797 2005-01-11  Miklos Szeredi <miklos@szeredi.hu>
1799         * KERNEL: fix possible inode allocation problem, where
1800         sizeof(struct inode) is not aligned (found by Mike Waychison)
1802         * KERNEL: use new follow_link/put_link methods
1804         * KERNEL: cosmetic fixes
1806 2005-01-10  Miklos Szeredi <miklos@szeredi.hu>
1808         * Released 2.2-pre3
1810 2005-01-10  Miklos Szeredi <miklos@szeredi.hu>
1812         * Add missing code that was accidently left out
1814 2005-01-09  Miklos Szeredi <miklos@szeredi.hu>
1816         * Released 2.2-pre2
1818 2005-01-09  Miklos Szeredi <miklos@szeredi.hu>
1820         * Change "uid" mount option to "user_id" to avoid confusion with a
1821         mount option "uid" commonly used by many filesystems
1823 2005-01-09  Miklos Szeredi <miklos@szeredi.hu>
1825         * Released 2.2-pre1
1827 2005-01-09  Miklos Szeredi <miklos@szeredi.hu>
1829         * If FUSE is configured in the kernel, don't build it by default
1831 2005-01-07  Miklos Szeredi <miklos@szeredi.hu>
1833         * Compile fix by Christian Magnusson
1835 2005-01-05  Miklos Szeredi <miklos@szeredi.hu>
1837         * Fix compilation for 2.6.{0-5} kernels
1839 2005-01-04  Miklos Szeredi <miklos@szeredi.hu>
1841         * KERNEL: if request is interrupted, still keep reference to used
1842         inode(s) and file, so that FORGET and RELEASE are not sent until
1843         userspace finishes the request.
1845         * remove /{sys,proc}/fs/fuse/version, and instead add an INIT
1846         request with the same information, which is more flexible,
1847         simpler, works on embedded systems.
1849 2004-12-16  Miklos Szeredi <miklos@szeredi.hu>
1851         * KERNEL ABI: update interface to make it independent of type
1852         sizes.  This will help on 64 bit architectures which can run
1853         legacy 32 bit applications.
1855         * KERNEL ABI: add "len" field to request headers.  This will allow
1856         sending/receiving requests in multiple chunks.
1858         * KERNEL: handle file type change more intelligently
1860         * LIB: "-o debug" option should disable backgrounding (fix by
1861         Fabien Reygrobellet)
1863 2004-12-13  Miklos Szeredi <miklos@szeredi.hu>
1865         * KERNEL: invalidate dentry/attributes if interrupted request
1866         could leave filesystem in an unknown state.
1868 2004-12-12  Miklos Szeredi <miklos@szeredi.hu>
1870         * KERNEL: lots of cleanups related to avoiding possible deadlocks.
1871         These will cause some regressions, but stability is considered
1872         more important.  If any of these features turns out to be
1873         important, it can be readded with the deadlock problems addressed.
1875         * Make all requests interruptible (only with SIGKILL currently).
1876         This can be used to break any deadlock produced by the userspace
1877         filesystem accessing it's own exported files.  The RELEASE request
1878         is special, because if it's interrupted before sending it to
1879         userspace it is still sent, but the reply is not awaited.
1881         * If request is interrupted before being sent to userspace, and if
1882         it hasn't yet got any side effects, it is always restarted,
1883         regardless of the SA_RESTART flag.  This makes these interruptions
1884         transparent to the process.
1886         * Remove shared-writable mmap support, which was prone to an
1887         out-of-memory deadlock situation
1889         * Remove INVALIDATE userspace initiated request
1891         * Make readpages() synchronous.  Asynchronous requests are
1892         deadlock prone, since they cannot be interrupted.
1894         * Add readv/writev support to fuse device operations
1896         * Remove some printks, which userspace FS can use for a DoS
1897         against syslog
1899         * Remove 'large_read' mount option from 2.6 in kernel, check it in
1900         fusermount instead
1902         * LIB: improve compatibility with a fuse.h header installed in
1903         ${prefix}/include which in turn includes the real header.
1905         * LIB: improve compatibility by defining fuse_main() (which is now
1906         not used), so old configure scripts find it.
1908 2004-12-10  Miklos Szeredi <miklos@szeredi.hu>
1910         * When mounting on a subdirectory of / don't duplicate slashes at
1911         the beggining of path (spotted by David Shaw)
1913 2004-12-09  Miklos Szeredi <miklos@szeredi.hu>
1915         * Fix bug causing garbage in mount options (spotted by David Shaw)
1917 2004-12-07  Miklos Szeredi <miklos@szeredi.hu>
1919         * Add 'writepage' flag to 'fuse_file_info'.
1921         * More comments in fuse.h
1923         * Get rid of double underscores
1925 2004-12-04  Miklos Szeredi <miklos@szeredi.hu>
1927         * Add -D_FILE_OFFSET_BITS=64 to cflags provided by pkg-config
1929         * helper.c: add -ho option, which only displays the options not
1930         the usage header.  This can be used by filesystems which have
1931         their own options.
1933 2004-12-03  Miklos Szeredi <miklos@szeredi.hu>
1935         * Add source compatibility to 2.1 and 1.1 APIs.  To select betwen
1936         versions simply define FUSE_USE_VERSION to 22, 21 or 11 before
1937         including the fuse header
1939         * Add binary compatibility to 2.1 version of library with symbol
1940         versioning
1942 2004-12-03  Miklos Szeredi <miklos@szeredi.hu>
1944         * Released 2.1
1946 2004-12-01  Miklos Szeredi <miklos@szeredi.hu>
1948         * kernel: clean up writing functions
1950         * kernel: no allocation on write in direct_io mode
1952         * move linux/fuse.h to fuse_kernel.h
1954 2004-11-30  Miklos Szeredi <miklos@szeredi.hu>
1956         * kernel: clean up reading functions
1958 2004-11-29  Miklos Szeredi <miklos@szeredi.hu>
1960         * kernel: make readpage() uninterruptible
1962         * kernel: check readonly filesystem flag in fuse_permission
1964         * lib: don't die if version file not found and new style device
1965         exists
1967         * lib: add '-r' option, which is short for '-o ro'
1969         * fusermount: simplify device opening
1971         * kernel: when direct_io is turend on, copy data directly to
1972         destination without itermediate buffer.  More efficient and safer,
1973         since no allocation is done.
1975         * fusermount: fix warning if fuse module is not loaded
1977         * kernel: use /dev/fuse on 2.4 too
1979 2004-11-26  Miklos Szeredi <miklos@szeredi.hu>
1981         * libfuse API change: open, read, write, flush, fsync and release
1982         are passed a 'struct fuse_file_info' pointer containing the open
1983         flags (open and release), and the file handle.  Verion changed to
1984         3.0.
1986 2004-11-23  Miklos Szeredi <miklos@szeredi.hu>
1988         * More cleanups in the kernel
1990         * The 10,229 charater device number has been assigned for FUSE
1992         * Version file checking fix (reported by Christian Magnusson)
1994         * fusermount: opening the fuse device now doesn't need /sys.
1996         * Optimize reading by controlling the maximum readahead based on
1997         the 'max_read' mount option
1999         * fixes for UCLIBC (Christian Magnusson)
2001 2004-11-19  Miklos Szeredi <miklos@szeredi.hu>
2003         * Cleaned up kernel in preparation for merge into mainline:
2005         * Use /sys/fs/fuse/version instead of /proc/fs/fuse/version
2007         * Use real device (/dev/fuse) instead of /proc/fs/fuse/dev
2009         * __user annotations for sparse
2011         * allocate individual pages instead of kmalloc in fuse_readdir,
2012         fuse_read and fuse_write.
2014         * Fix NFS export in case "use_ino" mount option is given
2016         * Make libfuse and fusermount compatible with future versions
2018         * fusermount: properly add mount options to /etc/mtab
2020 2004-11-15  Miklos Szeredi <miklos@szeredi.hu>
2022         * fusermount: do not resolve last component of mountpoint on if it
2023         is '.' or '..'.  This new path resolvation is now done on mount as
2024         well as unmount.  This enables relative paths to work on unmount.
2026         * fusermount: parse common mount options like "ro", "rw", etc...
2028         * Allow module params to be changed through sysfs
2030 2004-11-14  Miklos Szeredi <miklos@szeredi.hu>
2032         * Released 2.1-pre1
2034 2004-11-14  Miklos Szeredi <miklos@szeredi.hu>
2036         * Fix bug in fuse_readpages() causing Oops in certain situations.
2037         Bug found by Vincenzo Ciancia.
2039         * Fix compilation with kernels versions > 2.6.9.
2041 2004-11-11  Miklos Szeredi <miklos@szeredi.hu>
2043         * Check kernel interface version in fusermount to prevent
2044         strangeness in case of mismatch.
2046         * No need to allocate fuse_conn until actual mount happens
2048         * Fix potential race between umount and fuse_invalidate
2050         * Check superblock of proc file in addition to inode number
2052         * Fix race between request_send_noreply() and fuse_dev_release()
2054 2004-11-10  Miklos Szeredi <miklos@szeredi.hu>
2056         * Separate configure for the kernel directory
2058         * Don't allow write to return more than 'count'
2060         * Extend kernel interface for future use
2062 2004-11-09  Miklos Szeredi <miklos@szeredi.hu>
2064         * Fix 'makeconf.sh' to use autoreconf if available
2066 2004-11-08  Miklos Szeredi <miklos@szeredi.hu>
2068         * Add ino argument to 'fuse_dirfil_t'.  NOTE: This breaks source
2069         compatibility with earlier versions.  To compile earier versions
2070         just add '-DFUSE_DIRFIL_COMPAT' compile flag or fix the source.
2071         Do not use the "use_ino" mount flag with filesystems compiled with
2072         FUSE_DIRFIL_COMPAT.
2074         * Add pkg-config support.  To compile a FUSE based filesystem you
2075         can do  "gcc -Wall `pkg-config --cflags --libs fuse` myfs.c -o myfs"
2076         or similar.  Note, that the PKG_CONFIG_PATH environment variable
2077         usually needs to be set to "/usr/local/lib/pkgconfig".
2079         * fuse.h is now installed in ${prefix}/include/fuse/
2081 2004-11-02  Miklos Szeredi <miklos@szeredi.hu>
2083         * Added "use_ino" mount option.  This enables the filesystems to
2084         set the st_ino field on files
2086 2004-11-01  Miklos Szeredi <miklos@szeredi.hu>
2088         * Fix compile problems with ancient (<=2.4.18) kernels (reported
2089         by Jeremy Smith)
2091         * Add "allow_root" mount option.  Patch by Yaroslav Rastrigin
2093         * Clear the 'exited' flag when mail loop is finished
2095 2004-10-28  Miklos Szeredi <miklos@szeredi.hu>
2097         * Make xattr functions work under 2.6 (bug found by Vincenzo
2098         Ciancia)
2100 2004-10-26  Miklos Szeredi <miklos@szeredi.hu>
2102         * Reset request in fuse_flush() (bugreport by David Shaw)
2104 2004-10-21  Miklos Szeredi <miklos@szeredi.hu>
2106         * fuse_main() now does not exit on error, rather it returns an
2107         error code
2109         * Exported __fuse_setup() and __fuse_teardown() functions, which
2110         make it easier to implement a custom event loop.
2112         * Use daemon() call to background the filesystem after mounting.
2113         This function closes the standard input, output and error and
2114         changes the current working directory to "/".
2116 2004-10-14  Miklos Szeredi <miklos@szeredi.hu>
2118         * Released 1.9
2120 2004-10-09  Miklos Szeredi <miklos@szeredi.hu>
2122         * Don't allow fuse_flush() to be interrupted (bug found by David
2123         Shaw)
2125 2004-09-27  Miklos Szeredi <miklos@szeredi.hu>
2127         * Add PID to fuse_context.  Patch by Steven James
2129         * Change file handle type to 'unsigned long' in kernel interface
2131 2004-09-22  Miklos Szeredi <miklos@szeredi.hu>
2133         * A slight API change: fuse_get_context() doesn't need the "fuse"
2134         pointer, but the returned context contains it instead.  The
2135         fuse_get() function is not needed anymore, so it's removed.
2137         * Fix mounting and umounting FUSE filesystem under another FUSE
2138         filesystem by non-root (bug spotted by Valient Gough)
2140 2004-09-21  Miklos Szeredi <miklos@szeredi.hu>
2142         * Fix deadlock in case of memory allocation failure.  Patch by
2143         Christian Magnusson
2145 2004-09-16  Miklos Szeredi <miklos@szeredi.hu>
2147         * Check memory allocation failures in libfuse
2149 2004-09-14  Miklos Szeredi <miklos@szeredi.hu>
2151         * Check temporary file creation failure in do_getdir().  Bug
2152         spotted by Terje Oseberg
2154 2004-09-13  Miklos Szeredi <miklos@szeredi.hu>
2156         * Allow "large_read" option for 2.6 kernels but warn of deprecation
2158         * Make requests non-interruptible so race with FORGET is avoided.
2159         This is only a temporary solution
2161         * Support compiling FUSE kernel module on 2.4.x UML kernels
2163 2004-09-09  Miklos Szeredi <miklos@szeredi.hu>
2165         * Fix bug in case two FORGETs for the same node are executed in
2166         the wrong order.  Bug spotted and endured for months by Franco
2167         Broi, and logfile for solution provided by Terje Oseberg
2169 2004-09-01  Miklos Szeredi <miklos@szeredi.hu>
2171         * Add -D_REENTRANT to the compile flags
2173         * Add documentation of fuse internals by Terje Oseberg
2175 2004-08-16  Miklos Szeredi <miklos@szeredi.hu>
2177         * Change release method to be non-interruptible.  Fixes bug
2178         causing missing release() call when program which has opened files
2179         is killed (reported by Franco Broi and David Shaw)
2181 2004-07-29  Miklos Szeredi <miklos@szeredi.hu>
2183         * Add fuse_invalidate() to library API
2185 2004-07-26  Miklos Szeredi <miklos@szeredi.hu>
2187         * Check permissions in setattr if 'default_permissions' flag is
2188         set.  Bug spotted by Damjan Lango
2190 2004-07-24  Miklos Szeredi <miklos@szeredi.hu>
2192         * 'large_read' mount option removed for 2.6 kernels, since the
2193         default (dynamic read size) is better
2195         * Extend kernel API with file handles.  A file handle is returned
2196         by open, and passed to read, write, flush, fsync and release.
2197         This is currently only used for debug output in the library.
2199         * Security changes:
2201         * Change the current directory to the mountpoint before checking
2202         the permissions and mount filesystem on "."
2204         * By default don't modprobe the fuse module for non-root.  The old
2205         behavior can be restored with the '--enable-auto-modprobe' flag of
2206         ./configure
2208         * By default don't allow shared writable mappings for non-root.
2209         The old behavior can be restored with the 'user_mmap=1' module
2210         parameter
2212 2004-07-23  Miklos Szeredi <miklos@szeredi.hu>
2214         * Clean up mount option passing to fusermount and to fuse_new()
2215         BEWARE: this changes the userspace API slightly, and the command
2216         line usage of programs using fuse_main()
2218 2004-07-20  Miklos Szeredi <miklos@szeredi.hu>
2220         * Optimize reading under 2.6 kernels by issuing multiple page
2221         asynchronous read requests
2223 2004-07-18  Miklos Szeredi <miklos@szeredi.hu>
2225         * Only use redirty_page_for_writepage() for kernels >= 2.6.6
2227 2004-07-16  Miklos Szeredi <miklos@szeredi.hu>
2229         * Separate directory entry and inode attribute validity timer
2231         * New write semaphore to stop page writeback during truncate
2233         * Fsync now waits for all writes to complete before sending the
2234         request
2236         * Optimization: if a page is completely written by
2237         fuse_commit_write(), clear the dirty flag and set the uptodate
2238         flag for that page
2240         * Some memory cleanup at exit
2242 2004-07-13  Miklos Szeredi <miklos@szeredi.hu>
2244         * Add FUSE_HARD_REMOVE flag, and '-i' option to fuse main, which
2245         disable the "hide if open" behavior of unlink/rename.
2247         * If temporary buffer allocation fails in raw read, fall back to a
2248         smaller buffer
2250 2004-07-12  Miklos Szeredi <miklos@szeredi.hu>
2252         * Fix bug in do_open() in libfuse: open count was incremented
2253         after the reply is sent so it could race with unlink/forget and
2254         cause an abort.
2256 2004-07-08  Miklos Szeredi <miklos@szeredi.hu>
2258         * When performing create or remove operation, refresh the parent's
2259         attributes on next revalidate, as i_nlink (and maybe size/time)
2260         could be inacurate.
2262         * Use redirty_page_for_writepage() in fuse_writepage() for skipped
2263         pages (2.6 only)
2265         * Set set_page_dirty address space operation (2.6 only)
2267 2004-07-06  Miklos Szeredi <miklos@szeredi.hu>
2269         * Minor fix in read:  print debug info even if read size is zero
2271 2004-07-04  Miklos Szeredi <miklos@szeredi.hu>
2273         * Fix race between truncate and writepage (fsx-linux now runs
2274         without error)
2276 2004-07-02  Miklos Szeredi <miklos@szeredi.hu>
2278         * Fix kernel hang on mkfifo under 2.4 kernels (spotted and patch
2279         by Mattias Wadman)
2281         * Added option for direct read/write (-r)
2283         * Fix revalidate time setting for newly created inodes
2285         * Remove uid==0 check for '-x' option in fusermount (kernel checks
2286         this)
2288         * fuse_main() only installs handlers for signals (out of INT, HUP,
2289         TERM, PIPE), for which no handler has yet been installed
2291         * Add module option 'user_allow_other' which if set to non-zero
2292         will allow non root user to specify the 'allow_other' mount option
2293         ('-x' option of fusermount)
2295         * Fix deadlock between page writeback completion and truncate
2296         (bug found by Valient Gough with the fsx-linux utility)
2298 2004-07-01  Miklos Szeredi <miklos@szeredi.hu>
2300         * Change passing fuse include dir to 2.6 kernel make system more
2301         robust (fixes compile problems seen on SuSE 9.1 with updated 2.6
2302         kernel)
2304 2004-06-30  Miklos Szeredi <miklos@szeredi.hu>
2306         * Acquire inode->i_sem before open and release methods to prevent
2307         concurrent rename or unlink operations.
2309         * Make __fuse_read_cmd() read only one command.  This allows
2310         multiplexing the fuse file descriptor with other event sources
2311         using select() or poll() (patch by Jeff Harris)
2313         * Export 'exited' flag with __fuse_exited() (patch by Jeff Harris)
2315 2004-06-27  Miklos Szeredi <miklos@szeredi.hu>
2317         * Fix file offset wrap around at 4G when doing large reads
2319 2004-06-24  Miklos Szeredi <miklos@szeredi.hu>
2321         * Fix memory leak in open (Valient Gough)
2323 2004-06-24  Miklos Szeredi <miklos@szeredi.hu>
2325         * Add "close after delete" support to libfuse (patch by Valient
2326         Gough)
2328         * Cancel all worker threads before exit in multithreaded mode
2330 2004-06-23  Miklos Szeredi <miklos@szeredi.hu>
2332         * Fix locking bugs
2334         * Don't send reply to RELEASE
2336         * Work with newer libtool (1.5a)
2338         * Check for st_atim member of struct stat
2340 2004-06-22  Miklos Szeredi <miklos@szeredi.hu>
2342         * No request allocation needed on inode and file release
2344 2004-06-21  Miklos Szeredi <miklos@szeredi.hu>
2346         * Fix possible inode leak in userspace in case of unfinished
2347         lookup/mknod/mkdir/symlink/link operation.
2349 2004-06-20  Miklos Szeredi <miklos@szeredi.hu>
2351         * Fix some races and cleanups in fuse_read_super()
2353 2004-06-19  Miklos Szeredi <miklos@szeredi.hu>
2355         * Requests are allocated at open time
2357 2004-06-03  Miklos Szeredi <miklos@szeredi.hu>
2359         * Build shared library as well as static (using libtool)
2361         * Change FUSE_MINOR_VERSION from 1 to 0.  I know it's illegal but
2362         there has not been a release with the previous minor number, and I
2363         hope nobody is using it for anything.
2365         * Change fuse_main(), so that default behavior is to go into
2366         background if mount is successful.  '-f' and '-d' options disable
2367         backgrounding.  This fixes the "Why does my FUSE daemon hang?"
2368         newbie complaint.
2370         * Cache ENOSYS (function not implemented) errors on *xattr, flush
2371         and fsync
2373         * Don't call getdir method from open() only from first readdir().
2374         Open is sometimes just used to store the current directory
2375         (e.g. find)
2377 2004-05-18  Miklos Szeredi <miklos@szeredi.hu>
2379         * Added flush() call
2381 2004-05-04  Miklos Szeredi <miklos@szeredi.hu>
2383         * Extended attributes support for 2.4 (patch by Cody Pisto)
2385 2004-04-20  Miklos Szeredi <miklos@szeredi.hu>
2387         * Fixed parser with modversions (Mattias Wadman)
2389 2004-04-19  Miklos Szeredi <miklos@szeredi.hu>
2391         * Added mount option parser to 2.4 build
2393 2004-04-13  Miklos Szeredi <miklos@szeredi.hu>
2395         * Replaced binary mount data with text options
2397         * Show FUSE specific mount options in /proc/mounts
2399         * Check in fuse.h whether _FILE_OFFSET_BITS is set to 64
2401 2004-04-09  Miklos Szeredi <miklos@szeredi.hu>
2403         * Check some limits so userspace won't get too big requests
2405 2004-04-05  Miklos Szeredi <miklos@szeredi.hu>
2407         * Kill compile warning
2409         * Upgraded user-mount patch for 2.6.5
2411 2004-04-02  Miklos Szeredi <miklos@szeredi.hu>
2413         * Add detection of user-mode-linux to configure
2415 2004-03-31  Miklos Szeredi <miklos@szeredi.hu>
2417         * fixed zero size case for getxattr and listxattr
2419 2004-03-30  Miklos Szeredi <miklos@szeredi.hu>
2421         * new fusermount flag '-z': lazy unmount, default is not lazy
2423         * Extended attributes operations added (getxattr, setxattr,
2424         listxattr, removexattr)
2426 2004-03-25  Miklos Szeredi <miklos@szeredi.hu>
2428         * If filesystem doesn't define a statfs operation, then an
2429         all-zero default statfs is returned instead of ENOSYS
2431 2004-03-24  Miklos Szeredi <miklos@szeredi.hu>
2433         * Add FS_BINARY_MOUNTDATA filesystem flag for kernels > 2.6.4
2435 2004-03-09  Miklos Szeredi <miklos@szeredi.hu>
2437         * Fix for uClinux (Christian Magnusson)
2439 2004-03-02  Miklos Szeredi <miklos@szeredi.hu>
2441         * fuse_main() adds "-n progname" to the fusermount command line
2443         * More kernel interface changes:
2445         * Lookup/getattr return cache timeout values
2447 2004-02-25  Miklos Szeredi <miklos@szeredi.hu>
2449         * Clean up option parsing in fuse_main()
2451         * Added fuse_get() function which returns the fuse object created
2452         by fuse_main()
2454 2004-02-20  Miklos Szeredi <miklos@szeredi.hu>
2456         * removed old way of mounting (fusermount mountpoint program)
2458         * more kernel interface changes:
2460         * added nanosecond precision to file times
2462         * removed interface version from mount data
2464         * added /proc/fs/fuse/version which contains MAJOR.MINOR
2466 2004-02-19  Miklos Szeredi <miklos@szeredi.hu>
2468         * statfs library API changed to match other methods.  Since this
2469           is not backward compatible FUSE_MAJOR_VERSION is changed to 2
2471         * kernel interface changes follow:
2473         * statfs changed to 64 bits, added 'bavail' field
2475         * add generation number to lookup result
2477         * optimized mknod/mkdir/symlink/link (no separate lookup is
2478         needed)
2480         * rdev size increased to 32 bits for mknod
2482         * kernel interface version changed to 3.1
2484 2004-02-18  Miklos Szeredi <miklos@szeredi.hu>
2486         * user-mount upgraded for 2.6.3 kernel
2488 2004-02-17  Miklos Szeredi <miklos@szeredi.hu>
2490         * Added user-mount.2.6.2-rc3.patch
2492         * Add FS_SAFE flag to fuse filesystem
2494         * fusermount should allow (un)mounting for non-root even if not
2495         suid-root
2497 2004-02-12  Miklos Szeredi <miklos@szeredi.hu>
2499         * Remove MS_PERMISSION mount flag (that means something else now)
2501 2004-02-10  Miklos Szeredi <miklos@szeredi.hu>
2503         * Added check for i_size_read/write functions to configure.in
2504         (patch by Valient Gough)
2506 2004-02-06  Miklos Szeredi <miklos@szeredi.hu>
2508         * Fixed writing >= 2G files
2510         * Check file size on open (with generic_file_open())
2512         * Readpage calls flush_dcache_page() after storing data
2514         * Use i_size_read/write for accessing inode->i_size
2516         * Make loopback mount of a fuse file work
2518 2004-02-04  Miklos Szeredi <miklos@szeredi.hu>
2520         * Released 1.1
2522 2004-01-29  Miklos Szeredi <miklos@szeredi.hu>
2524         * Properly check if the inode exists in fuse_invalidate
2526 2004-01-27  Miklos Szeredi <miklos@szeredi.hu>
2528         * Added -q option for fusermount
2530         * fuse_unmount() now uses -q option of fusermount, so no error is
2531         printed if the cause of the program exit is that the filesystem
2532         has already been unmounted
2534         * Fix i_nlink correctness after rmdir/unlink
2536 2004-01-26  Miklos Szeredi <miklos@szeredi.hu>
2538         * Released 1.1-pre2
2540 2004-01-26  Miklos Szeredi <miklos@szeredi.hu>
2542         * Fix typo (thanks Marcos Dione)
2544         * Compile fixes for 2.4 kernels
2546 2004-01-23  Miklos Szeredi <miklos@szeredi.hu>
2548         * Fix CONFIG_MODVERSIONS compile on 2.6
2550 2004-01-22  Miklos Szeredi <miklos@szeredi.hu>
2552         * Write all pending data before a RELEASE operation
2554         * Suppress 'Bad file descriptor' warning on exit
2556         * Replaced fusermount option '-d xxx' with '-n xxx' so it doesn't
2557         get confused with '-d' of fuse_main() (sorry about this change)
2559         * New fusermount option '-l' which enables big reads.  Big reads
2560         are now disabled by default.
2562         * fuse_main() can accept fusermount arguments after a '--'
2564 2004-01-19  Miklos Szeredi <miklos@szeredi.hu>
2566         * Support for exporting filesystem over NFS (see README.NFS)
2568 2004-01-14  Miklos Szeredi <miklos@szeredi.hu>
2570         * Support non-blocking writepage on 2.6.  This makes FUSE behave
2571         much more nicely in low-memory situations
2573         * Fix 32-bit dev handling in getattr and mknod for 2.6 kernels.
2574         (Note: the mknod method does not yet use 32bit device number)
2576 2004-01-13  Miklos Szeredi <miklos@szeredi.hu>
2578         * Code cleanups
2580 2004-01-07  Miklos Szeredi <miklos@szeredi.hu>
2582         * Released 1.1-pre1
2584 2004-01-06  Miklos Szeredi <miklos@szeredi.hu>
2586         * Integrated 2.6 kernel support patch by Michael Grigoriev
2588         * Improvements and cleanups for 2.6 kernels
2590 2004-01-05  Miklos Szeredi <miklos@szeredi.hu>
2592         * Added -d option to fusermount
2594 2003-12-15  Miklos Szeredi <miklos@szeredi.hu>
2596         * Added major+minor version to library API, and minor version to
2597           kernel API
2599 2003-12-13  David McNab <david@rebirthing.co.nz>
2601         * Implemented fsync support in examples/example.py
2603         * Implemented 'fsync' and 'statfs' methods in python
2604           interface
2606 2003-12-12  Miklos Szeredi <miklos@szeredi.hu>
2608         * Make it compile on 2.4.19.
2610         * Add fsync operation (write file failed on xemacs & vi)
2612 2003-12-12  David McNab <david@rebirthing.co.nz>
2614         * Added distutils support to the python module, as per standard
2615           python development practice
2617 2003-12-11  Miklos Szeredi <miklos@szeredi.hu>
2619         * Add file locking for mount/unmount (based on patch by Valient
2620         Gough)
2622 2003-12-11  David McNab <david@rebirthing.co.nz>
2624         * Python filesystem - was broken with python2.3, now fixed:
2625            - changed PyTuple_* calls to PySequence_*, because os.lstat
2626              is no longer returning a pure tuple
2627            - changed PyInt_Check() calls to also call PyLong_Check,
2628              to cover for cases (eg os.lstat) where longs are returned
2629            - Added support for file 'release' handling, which IMO is
2630              essential since this signals to a FS that writes to a file
2631              are complete (and therefore the file can now be disposed of
2632              meaningfully at the python filesystem's discretion)
2633            - Added '__init__' handler to base Fuse class, which allows
2634              your Python class to know the mountpoint and mount args,
2635              as attributes myfs.mountpoint, myfs.optlist, myfs.optdict
2637         * General:
2638            - added 'mount.fuse' script (in util/ dir), which is meant to be
2639              symlinked from /sbin, and which allows FUSE filesystems to
2640              be mounted with the 'mount' command, and listed in fstab;
2641              also, mount arguments get passed to your filesystem
2644 2003-11-04  Miklos Szeredi <miklos@szeredi.hu>
2646         * Fix kernel version detection (again).  Bugreport by Peter Levart
2648 2003-11-03  Miklos Szeredi <miklos@szeredi.hu>
2650         * Applied read combining patch by Michael Grigoriev (tested by
2651         Valient Gough and Vincent Wagelaar)
2653 2003-10-22  Miklos Szeredi <miklos@szeredi.hu>
2655         * Mtab handling fix in fusermount by "Valient Gough" (SF patch
2656         #766443)
2658 2003-10-13  Miklos Szeredi <miklos@szeredi.hu>
2660         * Error code fixes in kernel module
2662 2003-10-04  Miklos Szeredi <miklos@szeredi.hu>
2664         * kernel version detection fix
2666         * fusermount now uses "lazy" umount option
2668         * fusermount can use modprobe with module-init-tools
2670 2003-09-08  Miklos Szeredi <miklos@szeredi.hu>
2672         * Integrated caching patch by Michael Grigoriev
2674         * Added "Filesystems" file with descriptions of projects using
2675         FUSE
2677         * Added patch by Michael Grigoriev to allow compliation of FUSE
2678         kernel module for 2.6 kernels
2680 2003-06-02  Miklos Szeredi <miklos@szeredi.hu>
2682         * And another spec-file fix by Achim Settelmeier
2684 2003-05-26  Miklos Szeredi <miklos@szeredi.hu>
2686         * Spec-file fix by Achim Settelmeier
2688 2003-03-10  Miklos Szeredi <miklos@szeredi.hu>
2690         * Fix umount oops (found by Samuli Kärkkäinen)
2692 2003-03-05  Miklos Szeredi <miklos@szeredi.hu>
2694         * Merge of fuse_redhat.spec and fuse.spec by Achim Settelmeier
2696 2003-03-04  Miklos Szeredi <miklos@szeredi.hu>
2698         * Updated fuse.spec file (Achim Settelmeier)
2700 2003-02-19  Miklos Szeredi <miklos@szeredi.hu>
2702         * Version 1.0 released
2704 2003-02-12  Miklos Szeredi <miklos@szeredi.hu>
2706         * SuSE compilation fix by Juan-Mariano de Goyeneche
2708 2002-12-10  Miklos Szeredi <miklos@szeredi.hu>
2710         * The release() VFS call is now exported to the FUSE interface
2712 2002-12-05  Miklos Szeredi <miklos@szeredi.hu>
2714         * 64 bit file offset fixes in the fuse kernel module
2716         * Added function 'fuse_exit()' which can be used to exit the main
2717         loop
2719 2002-12-03  Miklos Szeredi <miklos@szeredi.hu>
2721         * Added _FILE_OFFSET_BITS=64 define to fuse.h.  Note, that this is
2722         an incompatible interface change.
2724 2002-10-28  Miklos Szeredi <miklos@szeredi.hu>
2726         * Portablility fix (bug reported by C. Chris Erway)
2728 2002-10-25  Miklos Szeredi <miklos@szeredi.hu>
2730         * Use Mark Glines' fd passing method for default operation instead
2731         of old reexec
2733 2002-10-22  Miklos Szeredi <miklos@szeredi.hu>
2735         * fix "Stale NFS file handle" bug caused by changes in 2.4.19
2737 2002-10-22  Miklos Szeredi <miklos@szeredi.hu>
2739         * fix incompatiblity with Red Hat kernels, with help from Nathan
2740         Thompson-Amato.
2742 2002-04-18  Mark Glines <mark@glines.org>
2744         * added an alternative to fuse_mount(), called
2745       fuse_mount_ioslave(), which does not need to reexec the
2746       FUSE program.
2747         * added a small helper util needed by fuse_mount_ioslave().
2749 2002-03-16  Mark Glines <mark@glines.org>
2751         * use struct fuse_statfs everywhere possible to avoid problems
2752       with the headerfiles changing struct statfs member sizes
2754 2002-03-01  Miklos Szeredi <miklos@szeredi.hu>
2756         * Another RPM spec file for RedHat >= 7 by Ian Pilcher
2758 2002-01-14  Miklos Szeredi <miklos@szeredi.hu>
2760         * RPM support by Achim Settelmeier
2762 2002-01-09  Miklos Szeredi <miklos@szeredi.hu>
2764         * Version 0.95 released
2766 2002-01-09  Miklos Szeredi <miklos@szeredi.hu>
2768         * Revaidate all path components not just the last, this means a
2769         very small performance penalty for being more up-to-date.
2771 2002-01-08  Miklos Szeredi <miklos@szeredi.hu>
2773         * Update and fix python interface
2775 2002-01-07  Mark Glines <mark@glines.org>
2777         * Added statfs() support to kernel, lib, examples, and perl!
2779 2001-12-26  Miklos Szeredi <miklos@szeredi.hu>
2781         * Better cross compilation support
2783         * Ported to Compaq IPAQ
2785 2001-12-20  Miklos Szeredi <miklos@szeredi.hu>
2787         * Added function fuse_get_context() to library API (inspired by
2788         patch from Matt Ryan)
2790         * Added flags to fusermount and to kernel interface to control
2791         permission checking
2793         * Integrated fuse_set_operations() into fuse_new()
2795 2001-12-08  Miklos Szeredi <miklos@szeredi.hu>
2797         * Applied header protection + extern "C" patch by Roland
2798         Bauerschmidt
2800 2001-12-02  Miklos Szeredi <miklos@szeredi.hu>
2802         * Added perl bindings by Mark Glines
2804 2001-11-21  Miklos Szeredi <miklos@szeredi.hu>
2806         * Cleaned up way of mounting simple filesystems.
2808         * fuse_main() helper function added
2810 2001-11-18  Miklos Szeredi <miklos@szeredi.hu>
2812         * Optimized read/write operations, so that minimal copying of data
2813         is done
2815 2001-11-14  Miklos Szeredi <miklos@szeredi.hu>
2817         * Python bindings by Jeff Epler added
2819 2001-11-13  Miklos Szeredi <miklos@szeredi.hu>
2821         * Fixed vfsmount reference leak in fuse_follow_link
2823         * FS blocksize is set to PAGE_CACHE_SIZE, blksize attribute from
2824         userspace is ignored
2826 2001-11-09  Miklos Szeredi <miklos@szeredi.hu>
2828         * Started ChangeLog