fix warning
[fuse.git] / ChangeLog
blob949d2fb12cdb8700efe5a9f0eb3cc59a52dc3841
1 2006-12-10  Miklos Szeredi <miklos@szeredi.hu>
3         * mount.fuse: add "setuid=USER" option which does a "su - USER"
4         for the filesystem
6         * fusermount: use "/bin/mount -f" to add entry to /etc/mtab, and
7         "/bin/umount" to remove entry from /etc/mtab.  This gets rid of
8         the ugly code dealing with mtab, as well as a possible race
9         between fusermount and mount trying to modify /etc/mtab at the
10         same time
12         * Fix "buffer size too small: 4" warning for users of the
13         fuse_loop_mt_proc() function.
15 2006-12-04  Miklos Szeredi <miklos@szeredi.hu>
17         * Fix warnings with gcc-4.1 on 64bit archs.  Report from
18         Harshavardhana
20         * Add extra warning options, and fix resulting warnings
22         * Really fix fuse_teardown problem
24 2006-12-02  Miklos Szeredi <miklos@szeredi.hu>
26         * Add -lrt to fuse.pc (if needed) to fix static linking against
27         libfuse.  Reported by Szakacsits Szabolcs
29 2006-12-01  Miklos Szeredi <miklos@szeredi.hu>
31         * Released 2.6.1
33 2006-11-30  Miklos Szeredi <miklos@szeredi.hu>
35         * Fix API version 21 and 22 compatibility for fuse_teardown.
36         Reported by Bgs
38 2006-11-29  Miklos Szeredi <miklos@szeredi.hu>
40         * fusermount: Print a more helpful message in case the kernel
41         doesn't support the 'fuseblk' filesystem type.  This has been
42         biting ntfs-3g users.  Reported by Yura Pakhuchiy
44         * kernel: fix build problem for "make -C ...".  Reported by
45         Stephen Bryant
47 2006-11-19  Miklos Szeredi <miklos@szeredi.hu>
49         * Fix bug in certain error paths of lookup routines.  The request
50         object was reused for sending FORGET, which is illegal.  This bug
51         could cause an Oops in linux-2.6.18 or in fuse-2.6.0, and might
52         silently corrupt memory in earlier versions.  Report and test
53         program by Russ Cox
55 2006-11-11  Miklos Szeredi <miklos@szeredi.hu>
57         * Print an error if an incompatible kernel interface version is
58         detected in INIT.  This will only show if filesystem is started
59         with -d or -f
61         * Fix order of fuse_destroy()/fuse_unmount() in error cleanup of
62         fuse_setup_common().  Reported by Szakacsits Szabolcs
64 2006-11-06  Miklos Szeredi <miklos@szeredi.hu>
66         * Fix recursive locking in fuse_create().  Thanks to Takuya
67         Ishibashi for the bug report
69 2006-10-28  Miklos Szeredi <miklos@szeredi.hu>
71         * Fix automake problem.  Patch from Nix
73 2006-10-26  Miklos Szeredi <miklos@szeredi.hu>
75         * Fix mount.fuse to use /bin/sh instead of /bin/bash, which is not
76         always available on embedded systems.  Patch from Paul Smith
78         * Fix util/Makefile.am, so that failure to run update-rc.d or
79         device creation doesn't cause make to fail.  Reported by Paul
80         Smith
82 2006-10-21  Miklos Szeredi <miklos@szeredi.hu>
84         * Released 2.6.0
86 2006-10-18  Miklos Szeredi <miklos@szeredi.hu>
88         * fusermount: don't try to create a lock file if /etc/mtab is a
89         symlink.  Report and patch from Alexei Sheplyakov (debian bug
90         #393693)
92 2006-10-17  Miklos Szeredi <miklos@szeredi.hu>
94         * Minor changes, sync with mainline tree
96 2006-10-16  Miklos Szeredi <miklos@szeredi.hu>
98         * Released 2.6.0-rc3
100 2006-10-15  Miklos Szeredi <miklos@szeredi.hu>
102         * kernel: cleanups
104 2006-10-13  Miklos Szeredi <miklos@szeredi.hu>
106         * kernel: Fix compilation on patched 2.6.18 (fc6) and 2.6.19.
107         Report from David Shaw
109         * lib: Fix lost error on renaming a file. Report from David Shaw
111         * lib: Fix lost error on hiding open files (renaming to
112         .fuse_hiddenXXXX)
114         * kernel: Fix a rare hang on SMP/32bit on heavy filesystem
115         activity.  The cause of the bug was that some calls to
116         i_size_write() were not protected by a lock, and hence
117         i_size_seqcount could become corrupted.  This caused subsequent
118         calls to i_size_read() to spin forever.  This is a long standing
119         bug was probably introduced in version 2.2, and thought to be
120         related to NFS exporting (it's not).  It was reported by various
121         people, but Dana Henriksen has finally helped me to track it down,
122         so big thanks to him
124         * kernel: Protect against truncation of a swapfile
126 2006-10-10  Miklos Szeredi <miklos@szeredi.hu>
128         * kernel: Check for signature of super_operations->umount_begin().
129         Ubuntu kernel 2.6.17 seems to use the new signature found in
130         2.6.18.  Thanks to Florent Mertens for the report
132 2006-10-08  Miklos Szeredi <miklos@szeredi.hu>
134         * Make sure inode numers wrap around at 2^32.  This is needed on
135         dual 64bit/32bit architectures, because 32bit applications using
136         the non-largefile interface would otherwise break (EOVERFLOW error
137         would be returned by the stat() system call family)
139         * ulockmgr: handle the case, when a locking operation fails
140         because no more file desctriptors are available in
141         ulockmgr_server.  Also work around a Linux kernel bug (known to
142         exist for all Linux kernel versions <= 2.6.18) which may cause
143         sent file descriptors to be lost in the above case
145         * ulockmgr: optimize file descriptor use
147         * restore needed cpp flags to util/Makefile.am
149         * Install udev rules as 99-fuse.rules instead of 60-fuse.rules
151         * Minor clean up of udev rules
153         * Add a synchronous DESTROY message to kernel interface.  This is
154         invoked from umount, when the final instance of the filesystem is
155         released.  It is only sent for filesystems mounted with the
156         'blkdev' option for security reasons.
158         * If the DESTROY message is received, call the filesystem's
159         ->destroy() method.  In this case it's not called from session
160         destruction as it would be otherwise.
162 2006-10-01  Miklos Szeredi <miklos@szeredi.hu>
164         * Released 2.6.0-rc2
166 2006-10-01  Miklos Szeredi <miklos@szeredi.hu>
168         * Add support for FLUSH+RELEASE operation for FreeBSD.  Original
169         patch by Csaba Henk
171         * Add init script to insert fuse module and mount the control
172         filesystem.  The script is installed as /etc/init.d/fuse and on
173         debian based systems (where update-rc.d is available) symlinks
174         from /etc/rc*.d/ are also installed.
176         * Include '#define FUSE_USE_VERSION=XX' into examples so they
177         become more self contained.
179 2006-09-30  Miklos Szeredi <miklos@szeredi.hu>
181         * API changes:
183         * Move lock_owner from a separate argument into fuse_file_info
185         * Add a flag to fuse_file_info indicating (1) a highlevel lock
186         operation (unlock all) was initiated by a flush, (2) a lowlevel
187         release operation should perform a flush as well.
189         * fusermount: revert modprobe change (2006-08-18) since it
190         doesn't work reliably with udev
192         * Add support for block device backed filesystems.  This mode is
193         selected with the 'blkdev' option, which is privileged.
195         * Add support for the bmap (FIBMAP ioctl) operation on block
196         device backed filesystems.  This allows swapon and lilo to work on
197         such filesystems.
199         * kernel changes:
201         * Drop support for kernels earlier than 2.6.9.  Kernel module from
202         previous (2.5.x) release can be used with library from this
203         release
205         * In fuse_dentry_revalidate() use dget_parent() instead of
206         dereferencing d_parent, since there's no protection against parent
207         changing and going away
209         * Protect nlookup from concurrent updates
211         * In lookup if a directory alias exists but is unused,
212         then get rid of it, otherwise return -EBUSY.
214         * In mkdir if a directory alias exists, return success, but leave
215         dentry negative.  In reality this could happen if a remote rename
216         immediately followed the mkdir.
218         * Don't BUG in fuse_iget() if multiple retries are needed to get a
219         good inode.  This could happen if several lookups are racing for
220         the same inode.
222 2006-09-29  Miklos Szeredi <miklos@szeredi.hu>
224         * Fix compilation on 2.6.9.  Report from Troy Ayers
226 2006-09-27  Miklos Szeredi <miklos@szeredi.hu>
228         * Fix Oops in fuse_readpages().  Reported by David Shaw
230 2006-09-24  Csaba Henk <csaba.henk@creo.hu>
232         * Add support for nanosec times on FreeBSD
234         * Fix FreeBSD compatibility issues
236 2006-09-23  Miklos Szeredi <miklos@szeredi.hu>
238         * Fix one more compatibility bug.  Thanks to Ricardo Correia
240         * Fix utimens compilation with uClibc.  Patch from Jamie Guinan
242 2006-09-22  Miklos Szeredi <miklos@szeredi.hu>
244         * Fixed several compatibility bugs in low level interface.
245         Reported by Ricardo Correia
247         * Add workaround for ARM caching bug
249 2006-09-16  Miklos Szeredi <miklos@szeredi.hu>
251         * Rename new utimes() method to more logical utimens()
253 2006-09-14  Miklos Szeredi <miklos@szeredi.hu>
255         * Fuse tried to unlink already unlinked hidden files.  Bug
256         reported by Milan Svoboda
258 2006-09-10  Miklos Szeredi <miklos@szeredi.hu>
260         * Released 2.6.0-rc1
262 2006-09-10  Miklos Szeredi <miklos@szeredi.hu>
264         * kernel: Fix unlock on close for kernels < 2.6.18
266         * Add ulockmgr library & server.  This can be used for handling
267         file locking requests either directly from libfuse or over a
268         network, etc.  This first version is not optimized and the number
269         of file descriptors it uses may get out of hand
271 2006-09-07  Miklos Szeredi <miklos@szeredi.hu>
273         * lib: Add interrupt support to high level library, which may be
274         enabled with the 'intr' mount option.
276         * When an operation is interrupted the thread handling that
277         operation will receive SIGUSR1 (or other signal specified with the
278         'intr_signal=N' option).  The library installs a no-op signal
279         handler for this signal, unless there's already a handler
280         installed.
282         * The filesystem may query interrupt status (regardless of 'intr')
283         with the fuse_interrupted() function.
285         * mount.fuse: initialize $HOME if not set.  Report from Sven Goldt
287 2006-09-03  Miklos Szeredi <miklos@szeredi.hu>
289         * lib: Multithreaded loop now allows unlimited number of threads.
290         This is needed for locking operations which may block
291         indefinitely.  Also the kernel now doesn't limit the number of
292         outstanding requests so the library shouldn't do so either.
294 2006-09-01  Miklos Szeredi <miklos@szeredi.hu>
296         * Fix recursive lock bug in interrupt handling
298         * Add utimes() method to highlevel interface, which supports
299         setting times with nanosecond resolution
301 2006-08-18  Miklos Szeredi <miklos@szeredi.hu>
303         * kernel: fix page leak if fuse_readpages() failed in it's
304         initialization.  Bug found and original patch from Alexander
305         Zarochentsev
307         * For linux kernels >=2.6.18 (2.6.19 if using the fuse module from
308         the kernel tree) the statfs method will receive the path within
309         the filesystem on which the stat(v)fs syscall was called
311         * fusermount: try to modprobe fuse module if invoked by root and
312         unable to open device.  This is needed with udev, since the device
313         node will be created only when the module is inserted, hence
314         module autoloading won't work.  Reported by Szakacsits Szabolcs
316 2006-07-30  Miklos Szeredi <miklos@szeredi.hu>
318         * fusermount: if selinux is active, restore the original file's
319         security context in unmount_rename().  Redhat bugzilla id 188561.
320         Patch from Yves Perrenoud
322         * Add POSIX file locking operation to high level library
324         * Initialize context for unlink of hidden files on umount.  Bug
325         reported by Tim Stoakes
327 2006-07-14  Miklos Szeredi <miklos@szeredi.hu>
329         * Multiple release() calls can race with each other, resulting in
330         the hidden file being deleted before the last release finishes.
331         Bug found and patch tested by Mark Huijgen
333 2006-07-05  Miklos Szeredi <miklos@szeredi.hu>
335         * fusermount: if /dev/fuse doesn't exist, suggest modprobing fuse;
336         this makes sense on systems using udev.  Reported by Szakacsits
337         Szabolcs
339 2006-06-29  Miklos Szeredi <miklos@szeredi.hu>
341         * Released 2.6.0-pre3
343 2006-06-29  Miklos Szeredi <miklos@szeredi.hu>
345         * Support in kernel module for file locking and interruption.  The
346         same functionality is available in official kernels >= 2.6.18
348 2006-06-28  Miklos Szeredi <miklos@szeredi.hu>
350         * Add POSIX file locking support
352         * Add request interruption
354 2006-06-06  Miklos Szeredi <miklos@szeredi.hu>
356         * Add missing pthread_rwlock_destroy().  Patch from Remy Blank
358 2006-06-05  Remy Blank <remy.blank@pobox.com>
360         * lib: canonicalize mount point in fuse_helper_opt_proc() so that
361         unmounting succeeds even if mount point was relative.
363 2006-06-04  Csaba Henk <csaba.henk@creo.hu>
365         * lib: fix emergency umount in helper.c when malloc fails.
366         (The way it was done would end up in a segfault.)
368 2006-06-01  Csaba Henk <csaba.henk@creo.hu>
370         * lib: adjust threading related compiler flags.
371         Switch to "-pthread" from "-lpthread" as that's the preferred
372         one on several platforms. Consulted with Terrence Cole and
373         Miklos Szeredi
375 2006-05-08  Miklos Szeredi <miklos@szeredi.hu>
377         * lib: search fusermount in installation directory (bindir) as
378         well as in PATH.
380 2006-05-03  Miklos Szeredi <miklos@szeredi.hu>
382         * lib: fix compilation if CLOCK_MONOTONIC is not defined.
383         Reported by Christian Magnusson
385 2006-04-23  Csaba Henk <csaba.henk@creo.hu>
387         * lib: make FreeBSD mount routine recognize if kernel features
388         backgrounded init and if it does, run the mount util in foreground
389         (similarly to Linux)
391 2006-04-21  Miklos Szeredi <miklos@szeredi.hu>
393         * kernel: fix fput deadlock fix, the lockless solution could lead
394         to "VFS: busy inodes after umount..."
396         * kernel: fix race between checking and setting file->private_data
397         for the device.  Found by Al Viro
399 2006-04-11  Miklos Szeredi <miklos@szeredi.hu>
401         * kernel: remove request pool, instead allocate requests on
402         demand.  Account the number of background requests, and if they go
403         over a limit, block the allocation of new requests.
405         * kernel: fix deadlock if backgrounded request holds the last
406         reference to the super block
408         * kernel: don't use fuse_reset_request() during direct I/O
410 2006-04-06  Csaba Henk <csaba.henk@creo.hu>
412         * lib: Let FreeBSD mount option parsing routine recognize "no"
413         prefixes for FUSE specific options as well
415 2006-04-01  Miklos Szeredi <miklos@szeredi.hu>
417         * lib: Add missing rwlock initialization.  Patch by Ryan Bradetich
419 2006-03-17  Miklos Szeredi <miklos@szeredi.hu>
421         * API changes:
423         * fuse_main(), fuse_setup() and fuse_new() have an additionl
424         user_data parameter
426         * fuse_mount() returns a 'struct fuse_chan' pointer instead of a
427         file descriptor
429         * fuse_unmount() receives a 'struct fuse_chan' pointer.  It
430         destroys the given channel
432         * fuse_teardown() no longer has a file descriptor parameter
434         * new exported functions: fuse_session_remove_chan(),
435         fuse_get_session(), fuse_daemonize()
437         * fuse_chan_recv() may now return a new channel which will be used
438         to send the reply
440 2006-03-16  Miklos Szeredi <miklos@szeredi.hu>
442         * Released 2.6.0-pre2
444 2006-03-16  Miklos Szeredi <miklos@szeredi.hu>
446         * Don't unmount if already unmounted.  This fixes a problem seen
447         in the following situation: Lazy unmount a busy filesystem; Mount
448         a new one in top; When the first finally unmounts, the second also
449         unmounts.  Reported by Franco Broi
451 2006-03-15  Miklos Szeredi <miklos@szeredi.hu>
453         * lowlevel lib: use indirect function calls instead of a
454         switch/case construct.  Besides increased efficiency it helps
455         maintainability & readability too.  Patch from Florin Malita
457 2006-03-13  Miklos Szeredi <miklos@szeredi.hu>
459         * kernel: replace global spinlock with a per-connection spinlock
461 2006-03-10  Miklos Szeredi <miklos@szeredi.hu>
463         * Fix source compatibility breakage for fuse_unmount().  Report
464         from Yura Pakhuchiy
466 2006-03-02  Miklos Szeredi <miklos@szeredi.hu>
468         * Fix O_ASYNC handling in fuse_dev_release().  From Jeff Dike
470 2006-03-01  Miklos Szeredi <miklos@szeredi.hu>
472         * Add O_ASYNC and O_NONBLOCK support to FUSE device.  Patch by
473         Jeff Dike
475         * Renamed fuse_chan_receive() to fuse_chan_recv() and changed
476         interface to return -errno in case of error.
478 2006-03-01  Csaba Henk <csaba.henk@creo.hu>
480         * libfuse: pass device file descriptor to fuse_unmount(), rewrite
481         FreeBSD implementation so that it uses libc (sysctl backed) instead
482         of an embdedded script (kmem backed). Adjust the control flow of
483         hello_ll so that device doesn't get closed before unmount attempt.
485 2006-02-25  Miklos Szeredi <miklos@szeredi.hu>
487         * Lowlevel lib: return all-zero statvfs data if filesystem doesn't
488         implement method.  This is needed on FreeBSD, and nicer on Linux
489         too.  Highlevel lib already did this.  Reported by Csaba Henk
491         * Fix negative entry handling.  There was a bug, that negative
492         lookups with timeouts (nodeid == 0) returned -EIO.
494 2006-02-23  Miklos Szeredi <miklos@szeredi.hu>
496         * Fix race between RELEASE and UNLINK, which might leave
497         .fuse_hidden* files around
499 2006-02-21  Miklos Szeredi <miklos@szeredi.hu>
501         * fusexmp_fh: implement flush() method and call close() on the
502         open file descriptor.  This is needed if used on an NFS
503         filesystem, which buffers data until file is closed.  Franco Broi
504         spotted the situation when 'cp -p' failed to set the modification
505         time because of this.
507 2006-02-20  Miklos Szeredi <miklos@szeredi.hu>
509         * Released 2.6.0-pre1
511 2006-02-19  Miklos Szeredi <miklos@szeredi.hu>
513         * libfuse: fix use-after-free bug in interruptred reply_entry().
514         Patch from John Muir
516         * libfuse: fix wrong symbol versioning for fuse_mount.  Debian bug
517         ID: 352631.  Found by Stéphane Rosi
519 2006-02-17  Miklos Szeredi <miklos@szeredi.hu>
521         * Lowlevel lib: Unify fuse_dirent_size() and fuse_add_dirent()
522         into a single function fuse_add_direntry().  This cleans up the
523         interface and makes it possible to do stacking.
525 2006-02-16  Miklos Szeredi <miklos@szeredi.hu>
527         * Fix rare race betweeen abort and release caused by failed iget()
528         in fuse_create_open().
530         * Add 'ac_attr_timeout' option e.g. for filesystems which do their
531         own attribute caching.
533 2006-02-15  Miklos Szeredi <miklos@szeredi.hu>
535         * Work around FreeBSD runtime linker "feature" which binds an old
536         version of a symbol to internal references if the symbol has more
537         than one version.  This resulted in infinite recursion in
538         fuse_lowlevel_new_compat25().
540 2006-02-10  Csaba Henk <csaba.henk@creo.hu>
542         * Refine clock_gettime() querying so that linker options
543         shall be set as it's appropriate for the target platform.
545 2006-02-09  Miklos Szeredi <miklos@szeredi.hu>
547         * Fix udev rule syntax.  Reported by Nix
549 2006-02-08  Miklos Szeredi <miklos@szeredi.hu>
551         * In some cases udev rule seems to be ineffective when installed
552         as 40-fuse.rules but work as 60-fuse.rules.  Reported by John Hunt
554 2006-02-03  Miklos Szeredi <miklos@szeredi.hu>
556         * Fix compilation when build directory is different from source
557         directory.  Reported by Frédéric L. W. Meunier
559 2006-02-02  Miklos Szeredi <miklos@szeredi.hu>
561         * Fix even bigger bug introduced in fix for request_end() on
562         2006-01-14.  Reported by Gal Rosen
564 2006-01-30  Miklos Szeredi <miklos@szeredi.hu>
566         * highlevel-lib: add 'auto_cache' option.  This caches file data
567         based on modification time and size
569 2006-01-20  Miklos Szeredi <miklos@szeredi.hu>
571         * Sanitize storage type and help message in mount_bsd.c.  Patch
572         from Csaba Henk
574         * fuse_opt: add new helper constants FUSE_OPT_KEY_KEEP and
575         FUSE_OPT_KEY_DISCARD
577         * Add options 'max_readahead', 'sync_read' and 'async_read'
579         * Kernel ABI version 7.6:
581         * Negotiate the 'max_readahead' value and 'async_read' flags with
582         userspace in the INIT method
584         * Add connection info to ->init() methods to both lowlevel and
585         highlevel API
587         * Fall back to synchronous read() behavior if either library or
588         userspace filesystem is using the old interface version.  This is
589         needed so non-updated filesystems won't be confused by the
590         different read() behavior
592 2006-01-19  Miklos Szeredi <miklos@szeredi.hu>
594         * lib: if "fsname=" option was given, pass it to fusermount
596         * fuse_opt: add new fuse_opt_insert_arg() function, which is
597         needed by filesystems to implement some argument manipulations
598         correctly
600         * fuse_opt: fix memory leak in handling "--" option
602 2006-01-18  Miklos Szeredi <miklos@szeredi.hu>
604         * kernel: fix detection of case when fuse is not configured into
605         the kernel either as module or built-in
607         * fuse_opt.h: fix incompatibility with C++ compilers by renaming
608         'template' structure member to 'templ'.  Reported by Takashi Iwai
610         * fuse.h: fix compatibility bugs.  Patch by Yura Pakhuchiy
612         * kernel: support version 2.6.16 (i_sem -> i_mutex)
614 2006-01-16  Miklos Szeredi <miklos@szeredi.hu>
616         * Added (again) asynchronous readpages support
618         * Each connection now shows up under /sys/fs/fuse/connections
620         * Connection attributes exported to sysfs: 'waiting' number of
621         waiting requests; 'abort' abort the connection
623         * Connection may be aborted through either the sysfs interface or
624         with 'umount -f mountpoint'
626 2006-01-14  Miklos Szeredi <miklos@szeredi.hu>
628         * Released 2.5.0
630 2006-01-14  Miklos Szeredi <miklos@szeredi.hu>
632         * kernel: fix a couple of bugs
634         * Order of request_end() and fuse_copy_finish() was wrong.
635         Posthumous note: Franco Broi managed to exploit this, though it
636         seemed quite impossible
638         * request_end() used request pointer after decrementing refcount
640         * Clearing ->connected or ->mounted connection flags could race
641         with setting other bitfields not protected with a lock
643 2006-01-10  Miklos Szeredi <miklos@szeredi.hu>
645         * kernel: add necessary compile flags for 2.4.X/x86_64.
646         Report from Sean Ziegeler
648 2006-01-09  Miklos Szeredi <miklos@szeredi.hu>
650         * Released 2.5.0-pre2
652 2006-01-09  Miklos Szeredi <miklos@szeredi.hu>
654         * Applied patch from Csaba Henk, to update mount_bsd to new
655         fuse_mount() semantics
657         * Ignore auto,noauto,... options in mount.fuse.  Reported by Frank
658         Steiner and Don Taber
660         * fusermount: add 'dirsync' mount option
662 2006-01-07  Miklos Szeredi <miklos@szeredi.hu>
664         * Improved help reporting and added version reporting to library
666 2006-01-06  Miklos Szeredi <miklos@szeredi.hu>
668         * Change working directory to "/" even if running in the
669         foreground.  Patch from Jonathan Brandmeyer
671         * Changed lots of functions to use 'struct fuse_args' instead of
672         separate argc and argv
674         * Added fuse_parse_cmdline(), fuse_set_signal_handlers() and
675         fuse_remove_signal_handlers() functions, so that it's now pretty
676         easy to get all the functionality of fuse_main() with a filesystem
677         using the lowlevel API.
679 2006-01-02  Miklos Szeredi <miklos@szeredi.hu>
681         * mount.fuse: the 'user' option should be ignored. Report and
682         solution from Mattd.
684         * mount.fuse: export PATH in the right place. Report and patch
685         from Hannes Schweizer
687 2005-12-16  Miklos Szeredi <miklos@szeredi.hu>
689         * Clean up the option parsing interface slightly, by creating an
690         "argument list" structure, that contains the argument vector and
691         count
693 2005-12-15  Miklos Szeredi <miklos@szeredi.hu>
695         * fusermount: check if /mnt/mtab is a symlink and don't modify it
696         in that case
698         * kernel: simplify request size limiting. INIT only contains
699         maximum write size, maximum path component size remains fixed at
700         1024 bytes, and maximum xattr size depends on read buffer.
702 2005-12-14  Miklos Szeredi <miklos@szeredi.hu>
704         * Fix readdir() failure on x86_64, of 32bit programs compiled
705         without largefile support.  Bug report and help from Anthony
706         Kolasny
708         * If lookup returns invalid mode, return -EIO instead of creating
709         a regular file
711         * Add current output argument vector to option processing
712         function
714 2005-12-12  Miklos Szeredi <miklos@szeredi.hu>
716         * Fix stale code in ifdef FreeBSD.  Patch from Csaba Henk
718 2005-12-09  Miklos Szeredi <miklos@szeredi.hu>
720         * Released 2.5.0-pre1
722 2005-12-09  Miklos Szeredi <miklos@szeredi.hu>
724         * libfuse: added option parsing interface, defined in
725         <fuse_opt.h>.
727 2005-12-07  Miklos Szeredi <miklos@szeredi.hu>
729         * Return EIO for file operations (read, write, fsync, flush) on
730         open files whose inode has become "bad".  Inodes will be marked
731         "bad" if their type changes.  Bug report by Csaba Henk
733 2005-12-06  Miklos Szeredi <miklos@szeredi.hu>
735         * Use bigger request buffer size.  write() did not work on archs
736         with > 4k page size, Bug report by Mark Haney
738         * ABI version 7.5:
740         * Extend INIT reply with data size limits
742 2005-12-02  Miklos Szeredi <miklos@szeredi.hu>
744         * Fix memory leak in fuse_read_cmd()/fuse_process_cmd().  Bug
745         reported by Vincenzo Ciancia
747         * Handle exit-by-umount in fuse_read_cmd()
749 2005-11-29  Miklos Szeredi <miklos@szeredi.hu>
751         * Check if '-msoft-float' option is supported by compiler when
752         configuring for a 2.4.x kernel.  Bug report by Mark Haney
754         * In multithreaded loop send a TERM signal to the main thread if
755         one of the other threads exit.  Needed on FreeBSD for a clean exit
756         on umount.  Should not cause any harm on Linux either
758 2005-11-28  Miklos Szeredi <miklos@szeredi.hu>
760         * Fix bug in 32-bit file handle compatibility
762 2005-11-27  Miklos Szeredi <miklos@szeredi.hu>
764         * Block TERM, INT, HUP and QUIT signals in all but the main
765         thread.  According to POSIX it's not specified which thread will
766         receive these signals.
768         * Kernel changes:
770         * Check for directory aliasing on mkdir, not just on lookup
772         * Check for special node ID values in create+open operation
774         * Sync with -mm: readv, writev, aio_read and aio_write methods
775         added to file operations
777         * Cleanups: lookup code, page offset calculation
779         * ABI stepped to 7.4, changes:
781         * frsize member added to fuse_kstatfs structure
783         * added support for negative entry caching: on lowlevel API if
784         fuse_entry_param::ino is set to zero in reply to a lookup request,
785         the kernel will cache the dentry for the specified amount of time.
787         * libfuse: added 'negative_timeout' option: specifies how much
788         negative entries should be cached.  Default is zero, to be
789         compatible with prior versions
791 2005-11-22  Miklos Szeredi <miklos@szeredi.hu>
793         * Add detection of mainline FUSE code in running kernel
795 2005-11-21  Miklos Szeredi <miklos@szeredi.hu>
797         * Don't use async cancelation in multithreaded loop.  This makes
798         it more portable to systems where read() is not async cancel safe.
799         Report from Andriy Gapon
801 2005-11-20  Miklos Szeredi <miklos@szeredi.hu>
803         * Warn if API version 11 compatibility is requested
805 2005-11-17  Miklos Szeredi <miklos@szeredi.hu>
807         * More FreeBSD merge
809         * fusermount: don't allow mountpoints with '\n', '\t', or '\\' in
810         them, because it corrupts /etc/mtab.  Found by Thomas Biege
811         CVE-2005-3531
813         * libfuse: don't use system() to invoke 'fusermount -u ...'
814         because it breaks mountpoints with spaces in them into multiple
815         arguments
817 2005-11-16  Miklos Szeredi <miklos@szeredi.hu>
819         * Merge library part of FreeBSD port.  Patch by Csaba Henk
821 2005-11-11  Miklos Szeredi <miklos@szeredi.hu>
823         * Use 64bit type for file handle, so the full range supported by
824         the kernel interface is available to applications
826 2005-11-10  Miklos Szeredi <miklos@szeredi.hu>
828         * Moved mountpoint argument checking from fuse_parse_cmdline() to
829         fuse_mount() in preparation to FreeBSD merge.
831 2005-11-08  Miklos Szeredi <miklos@szeredi.hu>
833         * Remove unneeded close() from fuse_teardown().  Spotted by Csaba
834         Henk.
836 2005-11-07  Miklos Szeredi <miklos@szeredi.hu>
838         * Make the statfs change backwards compatible.
840 2005-11-06  Miklos Szeredi <miklos@szeredi.hu>
842         * Change ->statfs() method to use 'struct statvfs' instead of
843         'struct statfs'.  This makes the API more portable since statvfs()
844         is defined by POSIX.
846 2005-10-28  Miklos Szeredi <miklos@szeredi.hu>
848         * Add fgetattr() method, which currently will only be called after
849         a successful call to a create() method.
851 2005-10-26  Miklos Szeredi <miklos@szeredi.hu>
853         * Change kernel ABI version to 7.3
855         * Add ACCESS operation.  This is called from the access() system
856         call if 'default_permissions' mount option is not given, and is
857         not called on kernels 2.4.*
859         * Add atomic CREATE+OPEN operation.  This will only work with
860         2.6.15 (presumably) or later Linux kernels.
862         * Add ftruncate() method.  This will only work with 2.6.15
863         (presumably) or later Linux kernels.
865         * Fix kernel module compile if kernel source and build directories
866         differ.  Report and initial patch by John Eastman
868 2005-10-18  Miklos Szeredi <miklos@szeredi.hu>
870         * lib: optimize buffer reallocation in fill_dir.
872 2005-10-17  Miklos Szeredi <miklos@szeredi.hu>
874         * Released 2.4.1
876 2005-10-14  Miklos Szeredi <miklos@szeredi.hu>
878         * libfuse: add debug for write result (by Shaun Jackman) and
879         warnings for too large read/write result
881 2005-10-11  Miklos Szeredi <miklos@szeredi.hu>
883         * Spelling fixes, thanks to Ioannis Barkas
885 2005-10-10  Miklos Szeredi <miklos@szeredi.hu>
887         * fuse_common.h: use extern "C".  Thanks to Valient Gough for the
888         patch
890 2005-10-07  Miklos Szeredi <miklos@szeredi.hu>
892         * highlevel-lib: init() and destroy() methods didn't have an
893         initialized fuse_context.  Bug reported by Tim Stoakes
895 2005-10-04  Miklos Szeredi <miklos@szeredi.hu>
897         * Released 2.4.0
899 2005-10-03  Miklos Szeredi <miklos@szeredi.hu>
901         * Add documentation to fuse_lowlevel.h
903         * API cleanups:
905         * Remove definitions of unused FATTR_CTIME / FUSE_SET_ATTR_CTIME
907         * Move fuse_mount() and fuse_unmount() to fuse_common.h
909         * Change the return type of fuse_reply_none() from int to void.
911 2005-09-30  Miklos Szeredi <miklos@szeredi.hu>
913         * kernel: NFS exporting leaked dentries.  Bug found and fixed by
914         Akshat Aranya.
916 2005-09-29  Miklos Szeredi <miklos@szeredi.hu>
918         * fusermount: fix error message, when unable to open /dev/fuse.
919         Report by Balázs Pozsár
921 2005-09-28  Miklos Szeredi <miklos@szeredi.hu>
923         * UClibc fixes from Christian Magnusson
925 2005-09-27  Miklos Szeredi <miklos@szeredi.hu>
927         * Added NAME="%k" to util/udev.rules.  Fix by Mattias Wadman.
929 2005-09-26  Miklos Szeredi <miklos@szeredi.hu>
931         * Released 2.4.0-rc1
933 2005-09-26  Miklos Szeredi <miklos@szeredi.hu>
935         * fusermount: allow user umount in the case when /etc/mtab is a
936         symlink to /proc/mounts.  Reported by Balázs Pozsár.
938 2005-09-23  Miklos Szeredi <miklos@szeredi.hu>
940         * Check for special node ID values in lookup and creation
942 2005-09-22  Miklos Szeredi <miklos@szeredi.hu>
944         * Slight optimization in returning EINVAL error in case of an open
945         with O_DIRECT flag.
947 2005-09-20  Miklos Szeredi <miklos@szeredi.hu>
949         * Remove '--enable-auto-modprobe' configure flag.  Module
950         auto-loading is now handled by the kernel.
952 2005-09-15  Miklos Szeredi <miklos@szeredi.hu>
954         * Install UDEV rule file, so /dev/fuse is created with mode 0666.
955         Help from Jens M. Noedler.
957 2005-09-14  Miklos Szeredi <miklos@szeredi.hu>
959         * Add memory cleanup on thread exit
961 2005-09-13  Miklos Szeredi <miklos@szeredi.hu>
963         * Set umask to zero in fusexmp and fusexmp_fh, so that
964         files/directories are created with the requested mode.
966 2005-09-12  Miklos Szeredi <miklos@szeredi.hu>
968         * Don't ignore read error in multithreaded loop
970 2005-09-08  Miklos Szeredi <miklos@szeredi.hu>
972         * Released 2.4.0-pre2
974 2005-09-08  Miklos Szeredi <miklos@szeredi.hu>
976         * Revert lock and access operations.  Postpone these until 2.5.
978 2005-09-02  Miklos Szeredi <miklos@szeredi.hu>
980         * Fix compile warning on 2.6.13 and later
982         * Fix compilation on old kernels
984 2005-08-19  Miklos Szeredi <miklos@szeredi.hu>
986         * lib: always refresh directory contents after rewinddir() to
987         conform to SUS.  Bug found by John Muir.
989 2005-08-15  Miklos Szeredi <miklos@szeredi.hu>
991         * Released 2.4.0-pre1
993 2005-08-14  Miklos Szeredi <miklos@szeredi.hu>
995         * lib: cleaned up (or messed up, depending on your POV) the low
996         level library API.  Hopefully this is close to the final form.
998 2005-08-05  Miklos Szeredi <miklos@szeredi.hu>
1000         * fusermount: don't allow empty mountpoint argument, which defeats
1001         automatic umounting in fuse_main().  Bugreport by Václav Jůza
1003 2005-08-03  Miklos Szeredi <miklos@szeredi.hu>
1005         * fix warnings in fuse.h and fuse_lowlevel.h if -Wshadow compiler
1006         option is used (Paul Alfille).
1008 2005-08-02  Miklos Szeredi <miklos@szeredi.hu>
1010         * highlevel-lib: added mount options "attr_timeout" and
1011         "entry_timeout".  These options control the length of time file
1012         attributes and entries (names) are cached.  Both default to 1.0
1013         second.
1015         * kernel: correctly handle zero timeout for attributes and entries
1017 2005-08-01  Miklos Szeredi <miklos@szeredi.hu>
1019         * Added missing symbols to versionscript (Joshua J. Berry)
1021         * kernel: implement two flags, open can set: 'direct_io' and
1022         'keep_cache'.  These correspond exactly to mount options
1023         'direct_io' and 'kernel_cache', but allow a per-open setting.
1025         * Move 'direct_io' and 'kernel_cache' mount option handling to
1026         userspace.  For both mount options, if the option is given, then
1027         the respective open flag is set, otherwise the open flag is left
1028         unmodified (so the filesystem can set it).
1030         * lib (highlevel): make open method optional
1032 2005-07-28  Miklos Szeredi <miklos@szeredi.hu>
1034         * kernel: invalidate attributes for read/readdir/readlink
1035         operations
1037         * kernel: detect newer UML kernels
1039 2005-07-26  Miklos Szeredi <miklos@szeredi.hu>
1041         * Make the installation path of fuse.ko and mount.fuse
1042         configurable through INSTALL_MOD_PATH and MOUNT_FUSE_PATH
1043         environment variables.  Requirement and help from Csaba Henk.
1045 2005-07-22  Miklos Szeredi <miklos@szeredi.hu>
1047         * Fix bug, that causes filesystem requests to hang when unique
1048         request counter becomes negative.  This happens after
1049         2,147,483,648 operations, so most people won't care.  Thanks to
1050         Franco Broi for the report and testing.
1052 2005-07-21  Miklos Szeredi <miklos@szeredi.hu>
1054         * Don't change mtime/ctime/atime to local time on read/write.
1055         Bug reported by Ben Grimm
1057         * Install fuse_common.h and fuse_lowlevel.h.  Report by Christian
1058         Magnusson
1060         * fusermount: use getopt_long() for option parsing.  It allows the
1061         use of '--' to stop argument scanning, so fusermount can now
1062         operate on directories whose names begin with a '-'.  Patch by
1063         Adam Connell
1065 2005-07-15  Miklos Szeredi <miklos@szeredi.hu>
1067         * fusermount: add '-v', '--version' and '--help' options
1069         * add inode based API
1071 2005-07-12  Miklos Szeredi <miklos@szeredi.hu>
1073         * lib: don't block signals in worker threads.  Problem noticed by
1074         Usarin Heininga
1076 2005-07-07  Miklos Szeredi <miklos@szeredi.hu>
1078         * lib: don't allow both 'allow_other' and 'allow_root' options to
1079         be given
1081 2005-07-06  Miklos Szeredi <miklos@szeredi.hu>
1083         * fusermount: check if mountpoint is empty (only '.' and '..' for
1084         directories, and size = 0 for regular files).  If "nonempty"
1085         option is given, omit this check.  This is useful, so users don't
1086         accidentally hide data (e.g. from backup programs).  Thanks to
1087         Frank van Maarseveen for pointing this out.
1089         * kernel: check if mandatory mount options ('fd', 'rootmode',
1090         'user_id', 'group_id') are all given
1092         * lib: simplify 'readdir_ino' handling
1094         * lib: add mount options 'umask=M', 'uid=N', 'gid=N'
1096 2005-07-03  Miklos Szeredi <miklos@szeredi.hu>
1098         * kernel: clean up 'direct_io' code
1100 2005-06-28  Miklos Szeredi <miklos@szeredi.hu>
1102         * Add 'mount.fuse' written by Petr Klima
1104         * '/dev/fuse' is created by 'make install' if does not yet exist
1106 2005-06-20  Miklos Szeredi <miklos@szeredi.hu>
1108         * Fix UCLIBC compile error.  Patch by Christian Magnusson
1110 2005-06-08  Miklos Szeredi <miklos@szeredi.hu>
1112         * Enable the auto-loading of the module via access to the
1113         corresponding device file.  Patch by Takashi Iwai.
1115         * Allow mounting a regular file (over a regular file) for
1116         unprivleged users.
1118         * Do not create temporary device file.  Require "/dev/fuse" to
1119         exist, and be readable/writable by the mounting user.
1121 2005-06-02  Miklos Szeredi <miklos@szeredi.hu>
1123         * Released 2.3.0
1125 2005-06-02  Miklos Szeredi <miklos@szeredi.hu>
1127         * Fix serious information leak: if the filesystem returns a short
1128         byte count to a read request, and there are non-zero number of
1129         pages which are not filled at all, these pages will not be zeroed.
1130         Hence the user can read out previous memory contents.  Found by
1131         Sven Tantau.
1133 2005-05-27  Miklos Szeredi <miklos@szeredi.hu>
1135         * Add "readdir_ino" mount option, which tries to fill in the d_ino
1136         field in struct dirent.  This mount option is ignored if "use_ino"
1137         is used.  It helps some programs (e.g. 'pwd' used over NFS from a
1138         non-Linux OS).  Patch by David Shaw.
1140 2005-05-12  Miklos Szeredi <miklos@szeredi.hu>
1142         * Released 2.3-rc1
1144 2005-05-12  Miklos Szeredi <miklos@szeredi.hu>
1146         * File save in krusader and other editors doesn't work with sshfs,
1147         because open() is interrupted by a periodic signal, and open()
1148         restarts forever, without any progress.  This could just be fixed
1149         in open(), but the problem is more generic: if signals are
1150         received more often than the filesystem can get the request to
1151         userspace, it will never finish.  This is probably only a
1152         theoretical problem, nevertheless I'm removing the possibility to
1153         interrupt requests with anything other than SIGKILL, even before
1154         being sent to userspace.  Bugreport by Eduard Czimbalmos.
1156 2005-05-09  Miklos Szeredi <miklos@szeredi.hu>
1158         * libfuse: add "tree_lock" rwlock, that is locked for write in
1159         rename, unlink and rmdir, and locked for read in all other
1160         operations.  This should fix the rename/release race reported by
1161         Valient Gough and others.  The solution is very coarse, a finer
1162         grained locking scheme could be implemented, but it would be much
1163         more complex.  Let's see whether this is good enough.
1165 2005-05-09  Miklos Szeredi <miklos@szeredi.hu>
1167         * Released 2.3-pre7
1169 2005-05-08  Miklos Szeredi <miklos@szeredi.hu>
1171         * Better fix for out of order FORGET messages.  Now the
1172         LOOKUP/FORGET messages are balanced exactly (one FORGET can
1173         balance many lookups), so the order no longer matters.  This
1174         changes the kernel ABI slightly, but the library remains backward
1175         compatible.
1177 2005-05-06  Miklos Szeredi <miklos@szeredi.hu>
1179         * Fix abort for out of order FORGET messages.  Again.  Spotted by
1180         Franco Broi again.  Sorry :)
1182 2005-04-29  Miklos Szeredi <miklos@szeredi.hu>
1184         * Released 2.3-pre6
1186 2005-04-29  Miklos Szeredi <miklos@szeredi.hu>
1188         * Make fusermount work with fuse kernel modules not yet supporting
1189         the "group_id" option (added for the purpose of stricter
1190         permission checking).
1192 2005-04-28  Miklos Szeredi <miklos@szeredi.hu>
1194         * Check for hard-linked directories in lookup.  This could cause
1195         problems in the VFS, which assumes that such objects never exist.
1197         * Make checking of permission for other users more strict.  Now
1198         the same privilege is required for the mount owner as for ptrace
1199         on the process performing the filesystem operation.
1201 2005-04-23  Miklos Szeredi <miklos@szeredi.hu>
1203         * Released 2.3-pre5
1205 2005-04-22  Miklos Szeredi <miklos@szeredi.hu>
1207         * Add -msoft-float to kernel module compile flags for 2.4.X.  This
1208         is needed on certain architectures.  Report from Chris Kirby
1210         * Fix buggy behavior of open(..., O_CREAT|O_EXCL) if interrupted.
1211         Reported by David Shaw
1213         * Remove "allow_root" option from kernel module, and implement
1214         it's functionality in the library
1216         * Fix Oops caused by premature release of fuse_conn.  Clean up
1217         related code, to be more readable
1219         * Sendfile should not use page cache if "direct_io" mount option
1220         is given
1222 2005-04-08  Miklos Szeredi <miklos@szeredi.hu>
1224         * Fix Oops in case of nfs export.  Spotted by David Shaw
1226         * Fix another Oops in case of write over nfs with direct_io turned
1227         on.  Again spotted by David Shaw
1229 2005-04-07  Miklos Szeredi <miklos@szeredi.hu>
1231         * Released 2.3-pre4
1233 2005-04-07  Miklos Szeredi <miklos@szeredi.hu>
1235         * lib: finalized new readdir() interface, which now supersedes the
1236         getdir() method.
1238 2005-04-03  Miklos Szeredi <miklos@szeredi.hu>
1240         * Released 2.3-pre3
1242 2005-04-03  Miklos Szeredi <miklos@szeredi.hu>
1244         * Implement backward compatibility with version 5 kernel ABI
1246 2005-04-01  Miklos Szeredi <miklos@szeredi.hu>
1248         * Released 2.3-pre2
1250 2005-04-01  Miklos Szeredi <miklos@szeredi.hu>
1252         * kernel: fix dirent offset handling
1254         * lib: add readdir and releasedir methods
1256         * lib: use fh field of fuse_file_info in opendir, readdir,
1257         releasedir and fsyncdir methods
1259         * lib: check kernel API version and bail out of it's old.  This
1260         will be properly fixed in the next release
1262 2005-03-31  Miklos Szeredi <miklos@szeredi.hu>
1264         * Released 2.3-pre1
1266 2005-03-31  Miklos Szeredi <miklos@szeredi.hu>
1268         * kernel API: add padding to structures, so 64bit and 32bit
1269         compiler will return the same size
1271         * kernel API: add offset field to fuse_dirent.  This will allow
1272         more sophisticated readdir interface for userspace
1274         * kernel API: change major number to 6
1276         * kernel: fix warnings on 64bit archs
1278         * kernel: in case of API version mismatch, return ECONNREFUSED
1280 2005-03-24  Miklos Szeredi <miklos@szeredi.hu>
1282         * kernel: trivial cleanups
1284 2005-03-21  Miklos Szeredi <miklos@szeredi.hu>
1286         * Add fsyncdir() operation
1288 2005-03-19  Miklos Szeredi <miklos@szeredi.hu>
1290         * kernel: add locking to background list (fixes previous fix)
1292 2005-03-18  Miklos Szeredi <miklos@szeredi.hu>
1294         * kernel: fix bug which could cause leave busy inodes after
1295         unmount, and Oops.
1297 2005-03-08  Miklos Szeredi <miklos@szeredi.hu>
1299         * examples: add -lpthread to link flags to work around valgrind
1300         quirk
1302         * lib: don't exit threads, so cancelation doesn't cause segfault
1304 2005-03-04  Miklos Szeredi <miklos@szeredi.hu>
1306         * kernel: fix nasty bug which could cause an Oops under certain
1307         situations.  Found by Magnus Johansson
1309 2005-02-28  Miklos Szeredi <miklos@szeredi.hu>
1311         * libfuse: added opendir() method.  This can be used in case
1312         permission checking in getdir() is too late.  Thanks to Usarin
1313         Heininga for pointing out this deficiency
1315         * libfuse: added init() and destroy() methods to fuse_operations
1317         * kernel: llseek() method for files and directories made explicit
1319         * kernel: fixed inode leak in NFS export in case of nodeid
1320         wrapping
1322 2005-02-15  Miklos Szeredi <miklos@szeredi.hu>
1324         * libfuse: clean up some unitialized memory found with valgrind
1326         * Add -lpthread to Libs in fuse.pc.  Valgrind seems to need an
1327         explicitly linked libpthread for applications
1329 2005-02-10  Miklos Szeredi <miklos@szeredi.hu>
1331         * fusermount: set umask, otherwise /etc/mtab will have
1332         unpredictable permission.  Spotted by Jindrich Kolorenc
1334         * fusermount: set owner and group of /etc/mtab to original values
1335         on unmount
1337         * libfuse: add 'use_ino' option to help.  Patch by Valient Gough
1339 2005-02-07  Miklos Szeredi <miklos@szeredi.hu>
1341         * Cleaned up directory reading (temporary file is not used)
1343 2005-02-02  Miklos Szeredi <miklos@szeredi.hu>
1345         * Released 2.2
1347 2005-02-02  Miklos Szeredi <miklos@szeredi.hu>
1349         * Fix possible race when operation is interrupted
1351 2005-01-28  Miklos Szeredi <miklos@szeredi.hu>
1353         * Fix compilation on 2.6.7
1355 2005-01-26  Miklos Szeredi <miklos@szeredi.hu>
1357         * Released 2.2-pre6
1359 2005-01-26  Miklos Szeredi <miklos@szeredi.hu>
1361         * Fix bug in link() operation which caused the wrong path to be
1362         passed as the first argument.  Found by Anton Altaparmakov
1364 2005-01-21  Miklos Szeredi <miklos@szeredi.hu>
1366         * LIB: fix double reply in readdir operation
1368         * fusermount: fix uid checking bug.  Patch by Adam Connell
1370         * KERNEL: fix compile on various RedHat patched 2.4 kernels.
1371         Patch by Keshava Gowda
1373 2005-01-20  Miklos Szeredi <miklos@szeredi.hu>
1375         * KERNEL: provide correct llseek semantics for fuse device (fixes
1376         a bug on Progeny 2.4.20 kernel).  Reported by Valient Gough
1378 2005-01-20  Miklos Szeredi <miklos@szeredi.hu>
1380         * Released 2.2-pre5 (matches kernel 2.6.11-rc1-mm2)
1382 2005-01-18  Miklos Szeredi <miklos@szeredi.hu>
1384         * KERNEL ABI: remove GETDIR operation, and add OPENDIR, READDIR
1385         and RELEASEDIR.  This ends the ugly hack of passing a file
1386         descriptor to the kernel, and actually makes the code simpler.
1388 2005-01-17  Miklos Szeredi <miklos@szeredi.hu>
1390         * Released 2.2-pre4
1392 2005-01-17  Miklos Szeredi <miklos@szeredi.hu>
1394         * fusermount: remove capability setting, which was the cause of
1395         problems for some users.  It seems that FS related capabilities
1396         are removed by setfsuid(), so this isn't even needed.
1398 2005-01-15  Miklos Szeredi <miklos@szeredi.hu>
1400         * fix compilation on 2.4 kernels (reported by Valient Gough)
1402         * fix failure to unmount bug (found by David Shaw)
1404         * fusermount: improve parsing of /etc/fuse.conf
1406 2005-01-13  Miklos Szeredi <miklos@szeredi.hu>
1408         * Remove 'mount_max' and 'user_allow_other' module options.  These
1409         are now checked by fusermount, and can be set in /etc/fuse.conf
1411         * KERNEL: change check for fsid == 0 to capable(CAP_DAC_OVERRIDE)
1413 2005-01-11  Miklos Szeredi <miklos@szeredi.hu>
1415         * KERNEL: fix possible inode allocation problem, where
1416         sizeof(struct inode) is not aligned (found by Mike Waychison)
1418         * KERNEL: use new follow_link/put_link methods
1420         * KERNEL: cosmetic fixes
1422 2005-01-10  Miklos Szeredi <miklos@szeredi.hu>
1424         * Released 2.2-pre3
1426 2005-01-10  Miklos Szeredi <miklos@szeredi.hu>
1428         * Add missing code that was accidently left out
1430 2005-01-09  Miklos Szeredi <miklos@szeredi.hu>
1432         * Released 2.2-pre2
1434 2005-01-09  Miklos Szeredi <miklos@szeredi.hu>
1436         * Change "uid" mount option to "user_id" to avoid confusion with a
1437         mount option "uid" commonly used by many filesystems
1439 2005-01-09  Miklos Szeredi <miklos@szeredi.hu>
1441         * Released 2.2-pre1
1443 2005-01-09  Miklos Szeredi <miklos@szeredi.hu>
1445         * If FUSE is configured in the kernel, don't build it by default
1447 2005-01-07  Miklos Szeredi <miklos@szeredi.hu>
1449         * Compile fix by Christian Magnusson
1451 2005-01-05  Miklos Szeredi <miklos@szeredi.hu>
1453         * Fix compilation for 2.6.{0-5} kernels
1455 2005-01-04  Miklos Szeredi <miklos@szeredi.hu>
1457         * KERNEL: if request is interrupted, still keep reference to used
1458         inode(s) and file, so that FORGET and RELEASE are not sent until
1459         userspace finishes the request.
1461         * remove /{sys,proc}/fs/fuse/version, and instead add an INIT
1462         request with the same information, which is more flexible,
1463         simpler, works on embedded systems.
1465 2004-12-16  Miklos Szeredi <miklos@szeredi.hu>
1467         * KERNEL ABI: update interface to make it independent of type
1468         sizes.  This will help on 64 bit architectures which can run
1469         legacy 32 bit applications.
1471         * KERNEL ABI: add "len" field to request headers.  This will allow
1472         sending/receiving requests in multiple chunks.
1474         * KERNEL: handle file type change more intelligently
1476         * LIB: "-o debug" option should disable backgrounding (fix by
1477         Fabien Reygrobellet)
1479 2004-12-13  Miklos Szeredi <miklos@szeredi.hu>
1481         * KERNEL: invalidate dentry/attributes if interrupted request
1482         could leave filesystem in an unknown state.
1484 2004-12-12  Miklos Szeredi <miklos@szeredi.hu>
1486         * KERNEL: lots of cleanups related to avoiding possible deadlocks.
1487         These will cause some regressions, but stability is considered
1488         more important.  If any of these features turns out to be
1489         important, it can be readded with the deadlock problems addressed.
1491         * Make all requests interruptible (only with SIGKILL currently).
1492         This can be used to break any deadlock produced by the userspace
1493         filesystem accessing it's own exported files.  The RELEASE request
1494         is special, because if it's interrupted before sending it to
1495         userspace it is still sent, but the reply is not awaited.
1497         * If request is interrupted before being sent to userspace, and if
1498         it hasn't yet got any side effects, it is always restarted,
1499         regardless of the SA_RESTART flag.  This makes these interruptions
1500         transparent to the process.
1502         * Remove shared-writable mmap support, which was prone to an
1503         out-of-memory deadlock situation
1505         * Remove INVALIDATE userspace initiated request
1507         * Make readpages() synchronous.  Asynchronous requests are
1508         deadlock prone, since they cannot be interrupted.
1510         * Add readv/writev support to fuse device operations
1512         * Remove some printks, which userspace FS can use for a DoS
1513         against syslog
1515         * Remove 'large_read' mount option from 2.6 in kernel, check it in
1516         fusermount instead
1518         * LIB: improve compatibility with a fuse.h header installed in
1519         ${prefix}/include which in turn includes the real header.
1521         * LIB: improve compatibility by defining fuse_main() (which is now
1522         not used), so old configure scripts find it.
1524 2004-12-10  Miklos Szeredi <miklos@szeredi.hu>
1526         * When mounting on a subdirectory of / don't duplicate slashes at
1527         the beggining of path (spotted by David Shaw)
1529 2004-12-09  Miklos Szeredi <miklos@szeredi.hu>
1531         * Fix bug causing garbage in mount options (spotted by David Shaw)
1533 2004-12-07  Miklos Szeredi <miklos@szeredi.hu>
1535         * Add 'writepage' flag to 'fuse_file_info'.
1537         * More comments in fuse.h
1539         * Get rid of double underscores
1541 2004-12-04  Miklos Szeredi <miklos@szeredi.hu>
1543         * Add -D_FILE_OFFSET_BITS=64 to cflags provided by pkg-config
1545         * helper.c: add -ho option, which only displays the options not
1546         the usage header.  This can be used by filesystems which have
1547         their own options.
1549 2004-12-03  Miklos Szeredi <miklos@szeredi.hu>
1551         * Add source compatibility to 2.1 and 1.1 APIs.  To select betwen
1552         versions simply define FUSE_USE_VERSION to 22, 21 or 11 before
1553         including the fuse header
1555         * Add binary compatibility to 2.1 version of library with symbol
1556         versioning
1558 2004-12-03  Miklos Szeredi <miklos@szeredi.hu>
1560         * Released 2.1
1562 2004-12-01  Miklos Szeredi <miklos@szeredi.hu>
1564         * kernel: clean up writing functions
1566         * kernel: no allocation on write in direct_io mode
1568         * move linux/fuse.h to fuse_kernel.h
1570 2004-11-30  Miklos Szeredi <miklos@szeredi.hu>
1572         * kernel: clean up reading functions
1574 2004-11-29  Miklos Szeredi <miklos@szeredi.hu>
1576         * kernel: make readpage() uninterruptible
1578         * kernel: check readonly filesystem flag in fuse_permission
1580         * lib: don't die if version file not found and new style device
1581         exists
1583         * lib: add '-r' option, which is short for '-o ro'
1585         * fusermount: simplify device opening
1587         * kernel: when direct_io is turend on, copy data directly to
1588         destination without itermediate buffer.  More efficient and safer,
1589         since no allocation is done.
1591         * fusermount: fix warning if fuse module is not loaded
1593         * kernel: use /dev/fuse on 2.4 too
1595 2004-11-26  Miklos Szeredi <miklos@szeredi.hu>
1597         * libfuse API change: open, read, write, flush, fsync and release
1598         are passed a 'struct fuse_file_info' pointer containing the open
1599         flags (open and release), and the file handle.  Verion changed to
1600         3.0.
1602 2004-11-23  Miklos Szeredi <miklos@szeredi.hu>
1604         * More cleanups in the kernel
1606         * The 10,229 charater device number has been assigned for FUSE
1608         * Version file checking fix (reported by Christian Magnusson)
1610         * fusermount: opening the fuse device now doesn't need /sys.
1612         * Optimize reading by controlling the maximum readahead based on
1613         the 'max_read' mount option
1615         * fixes for UCLIBC (Christian Magnusson)
1617 2004-11-19  Miklos Szeredi <miklos@szeredi.hu>
1619         * Cleaned up kernel in preparation for merge into mainline:
1621         * Use /sys/fs/fuse/version instead of /proc/fs/fuse/version
1623         * Use real device (/dev/fuse) instead of /proc/fs/fuse/dev
1625         * __user annotations for sparse
1627         * allocate individual pages instead of kmalloc in fuse_readdir,
1628         fuse_read and fuse_write.
1630         * Fix NFS export in case "use_ino" mount option is given
1632         * Make libfuse and fusermount compatible with future versions
1634         * fusermount: properly add mount options to /etc/mtab
1636 2004-11-15  Miklos Szeredi <miklos@szeredi.hu>
1638         * fusermount: do not resolve last component of mountpoint on if it
1639         is '.' or '..'.  This new path resolvation is now done on mount as
1640         well as unmount.  This enables relative paths to work on unmount.
1642         * fusermount: parse common mount options like "ro", "rw", etc...
1644         * Allow module params to be changed through sysfs
1646 2004-11-14  Miklos Szeredi <miklos@szeredi.hu>
1648         * Released 2.1-pre1
1650 2004-11-14  Miklos Szeredi <miklos@szeredi.hu>
1652         * Fix bug in fuse_readpages() causing Oops in certain situations.
1653         Bug found by Vincenzo Ciancia.
1655         * Fix compilation with kernels versions > 2.6.9.
1657 2004-11-11  Miklos Szeredi <miklos@szeredi.hu>
1659         * Check kernel interface version in fusermount to prevent
1660         strangeness in case of mismatch.
1662         * No need to allocate fuse_conn until actual mount happens
1664         * Fix potential race between umount and fuse_invalidate
1666         * Check superblock of proc file in addition to inode number
1668         * Fix race between request_send_noreply() and fuse_dev_release()
1670 2004-11-10  Miklos Szeredi <miklos@szeredi.hu>
1672         * Separate configure for the kernel directory
1674         * Don't allow write to return more than 'count'
1676         * Extend kernel interface for future use
1678 2004-11-09  Miklos Szeredi <miklos@szeredi.hu>
1680         * Fix 'makeconf.sh' to use autoreconf if available
1682 2004-11-08  Miklos Szeredi <miklos@szeredi.hu>
1684         * Add ino argument to 'fuse_dirfil_t'.  NOTE: This breaks source
1685         compatibility with earlier versions.  To compile earier versions
1686         just add '-DFUSE_DIRFIL_COMPAT' compile flag or fix the source.
1687         Do not use the "use_ino" mount flag with filesystems compiled with
1688         FUSE_DIRFIL_COMPAT.
1690         * Add pkg-config support.  To compile a FUSE based filesystem you
1691         can do  "gcc -Wall `pkg-config --cflags --libs fuse` myfs.c -o myfs"
1692         or similar.  Note, that the PKG_CONFIG_PATH environment variable
1693         usually needs to be set to "/usr/local/lib/pkgconfig".
1695         * fuse.h is now installed in ${prefix}/include/fuse/
1697 2004-11-02  Miklos Szeredi <miklos@szeredi.hu>
1699         * Added "use_ino" mount option.  This enables the filesystems to
1700         set the st_ino field on files
1702 2004-11-01  Miklos Szeredi <miklos@szeredi.hu>
1704         * Fix compile problems with ancient (<=2.4.18) kernels (reported
1705         by Jeremy Smith)
1707         * Add "allow_root" mount option.  Patch by Yaroslav Rastrigin
1709         * Clear the 'exited' flag when mail loop is finished
1711 2004-10-28  Miklos Szeredi <miklos@szeredi.hu>
1713         * Make xattr functions work under 2.6 (bug found by Vincenzo
1714         Ciancia)
1716 2004-10-26  Miklos Szeredi <miklos@szeredi.hu>
1718         * Reset request in fuse_flush() (bugreport by David Shaw)
1720 2004-10-21  Miklos Szeredi <miklos@szeredi.hu>
1722         * fuse_main() now does not exit on error, rather it returns an
1723         error code
1725         * Exported __fuse_setup() and __fuse_teardown() functions, which
1726         make it easier to implement a custom event loop.
1728         * Use daemon() call to background the filesystem after mounting.
1729         This function closes the standard input, output and error and
1730         changes the current working directory to "/".
1732 2004-10-14  Miklos Szeredi <miklos@szeredi.hu>
1734         * Released 1.9
1736 2004-10-09  Miklos Szeredi <miklos@szeredi.hu>
1738         * Don't allow fuse_flush() to be interrupted (bug found by David
1739         Shaw)
1741 2004-09-27  Miklos Szeredi <miklos@szeredi.hu>
1743         * Add PID to fuse_context.  Patch by Steven James
1745         * Change file handle type to 'unsigned long' in kernel interface
1747 2004-09-22  Miklos Szeredi <miklos@szeredi.hu>
1749         * A slight API change: fuse_get_context() doesn't need the "fuse"
1750         pointer, but the returned context contains it instead.  The
1751         fuse_get() function is not needed anymore, so it's removed.
1753         * Fix mounting and umounting FUSE filesystem under another FUSE
1754         filesystem by non-root (bug spotted by Valient Gough)
1756 2004-09-21  Miklos Szeredi <miklos@szeredi.hu>
1758         * Fix deadlock in case of memory allocation failure.  Patch by
1759         Christian Magnusson
1761 2004-09-16  Miklos Szeredi <miklos@szeredi.hu>
1763         * Check memory allocation failures in libfuse
1765 2004-09-14  Miklos Szeredi <miklos@szeredi.hu>
1767         * Check temporary file creation failure in do_getdir().  Bug
1768         spotted by Terje Oseberg
1770 2004-09-13  Miklos Szeredi <miklos@szeredi.hu>
1772         * Allow "large_read" option for 2.6 kernels but warn of deprecation
1774         * Make requests non-interruptible so race with FORGET is avoided.
1775         This is only a temporary solution
1777         * Support compiling FUSE kernel module on 2.4.x UML kernels
1779 2004-09-09  Miklos Szeredi <miklos@szeredi.hu>
1781         * Fix bug in case two FORGETs for the same node are executed in
1782         the wrong order.  Bug spotted and endured for months by Franco
1783         Broi, and logfile for solution provided by Terje Oseberg
1785 2004-09-01  Miklos Szeredi <miklos@szeredi.hu>
1787         * Add -D_REENTRANT to the compile flags
1789         * Add documentation of fuse internals by Terje Oseberg
1791 2004-08-16  Miklos Szeredi <miklos@szeredi.hu>
1793         * Change release method to be non-interruptible.  Fixes bug
1794         causing missing release() call when program which has opened files
1795         is killed (reported by Franco Broi and David Shaw)
1797 2004-07-29  Miklos Szeredi <miklos@szeredi.hu>
1799         * Add fuse_invalidate() to library API
1801 2004-07-26  Miklos Szeredi <miklos@szeredi.hu>
1803         * Check permissions in setattr if 'default_permissions' flag is
1804         set.  Bug spotted by Damjan Lango
1806 2004-07-24  Miklos Szeredi <miklos@szeredi.hu>
1808         * 'large_read' mount option removed for 2.6 kernels, since the
1809         default (dynamic read size) is better
1811         * Extend kernel API with file handles.  A file handle is returned
1812         by open, and passed to read, write, flush, fsync and release.
1813         This is currently only used for debug output in the library.
1815         * Security changes:
1817         * Change the current directory to the mountpoint before checking
1818         the permissions and mount filesystem on "."
1820         * By default don't modprobe the fuse module for non-root.  The old
1821         behavior can be restored with the '--enable-auto-modprobe' flag of
1822         ./configure
1824         * By default don't allow shared writable mappings for non-root.
1825         The old behavior can be restored with the 'user_mmap=1' module
1826         parameter
1828 2004-07-23  Miklos Szeredi <miklos@szeredi.hu>
1830         * Clean up mount option passing to fusermount and to fuse_new()
1831         BEWARE: this changes the userspace API slightly, and the command
1832         line usage of programs using fuse_main()
1834 2004-07-20  Miklos Szeredi <miklos@szeredi.hu>
1836         * Optimize reading under 2.6 kernels by issuing multiple page
1837         asynchronous read requests
1839 2004-07-18  Miklos Szeredi <miklos@szeredi.hu>
1841         * Only use redirty_page_for_writepage() for kernels >= 2.6.6
1843 2004-07-16  Miklos Szeredi <miklos@szeredi.hu>
1845         * Separate directory entry and inode attribute validity timer
1847         * New write semaphore to stop page writeback during truncate
1849         * Fsync now waits for all writes to complete before sending the
1850         request
1852         * Optimization: if a page is completely written by
1853         fuse_commit_write(), clear the dirty flag and set the uptodate
1854         flag for that page
1856         * Some memory cleanup at exit
1858 2004-07-13  Miklos Szeredi <miklos@szeredi.hu>
1860         * Add FUSE_HARD_REMOVE flag, and '-i' option to fuse main, which
1861         disable the "hide if open" behavior of unlink/rename.
1863         * If temporary buffer allocation fails in raw read, fall back to a
1864         smaller buffer
1866 2004-07-12  Miklos Szeredi <miklos@szeredi.hu>
1868         * Fix bug in do_open() in libfuse: open count was incremented
1869         after the reply is sent so it could race with unlink/forget and
1870         cause an abort.
1872 2004-07-08  Miklos Szeredi <miklos@szeredi.hu>
1874         * When performing create or remove operation, refresh the parent's
1875         attributes on next revalidate, as i_nlink (and maybe size/time)
1876         could be inacurate.
1878         * Use redirty_page_for_writepage() in fuse_writepage() for skipped
1879         pages (2.6 only)
1881         * Set set_page_dirty address space operation (2.6 only)
1883 2004-07-06  Miklos Szeredi <miklos@szeredi.hu>
1885         * Minor fix in read:  print debug info even if read size is zero
1887 2004-07-04  Miklos Szeredi <miklos@szeredi.hu>
1889         * Fix race between truncate and writepage (fsx-linux now runs
1890         without error)
1892 2004-07-02  Miklos Szeredi <miklos@szeredi.hu>
1894         * Fix kernel hang on mkfifo under 2.4 kernels (spotted and patch
1895         by Mattias Wadman)
1897         * Added option for direct read/write (-r)
1899         * Fix revalidate time setting for newly created inodes
1901         * Remove uid==0 check for '-x' option in fusermount (kernel checks
1902         this)
1904         * fuse_main() only installs handlers for signals (out of INT, HUP,
1905         TERM, PIPE), for which no handler has yet been installed
1907         * Add module option 'user_allow_other' which if set to non-zero
1908         will allow non root user to specify the 'allow_other' mount option
1909         ('-x' option of fusermount)
1911         * Fix deadlock between page writeback completion and truncate
1912         (bug found by Valient Gough with the fsx-linux utility)
1914 2004-07-01  Miklos Szeredi <miklos@szeredi.hu>
1916         * Change passing fuse include dir to 2.6 kernel make system more
1917         robust (fixes compile problems seen on SuSE 9.1 with updated 2.6
1918         kernel)
1920 2004-06-30  Miklos Szeredi <miklos@szeredi.hu>
1922         * Acquire inode->i_sem before open and release methods to prevent
1923         concurrent rename or unlink operations.
1925         * Make __fuse_read_cmd() read only one command.  This allows
1926         multiplexing the fuse file descriptor with other event sources
1927         using select() or poll() (patch by Jeff Harris)
1929         * Export 'exited' flag with __fuse_exited() (patch by Jeff Harris)
1931 2004-06-27  Miklos Szeredi <miklos@szeredi.hu>
1933         * Fix file offset wrap around at 4G when doing large reads
1935 2004-06-24  Miklos Szeredi <miklos@szeredi.hu>
1937         * Fix memory leak in open (Valient Gough)
1939 2004-06-24  Miklos Szeredi <miklos@szeredi.hu>
1941         * Add "close after delete" support to libfuse (patch by Valient
1942         Gough)
1944         * Cancel all worker threads before exit in multithreaded mode
1946 2004-06-23  Miklos Szeredi <miklos@szeredi.hu>
1948         * Fix locking bugs
1950         * Don't send reply to RELEASE
1952         * Work with newer libtool (1.5a)
1954         * Check for st_atim member of struct stat
1956 2004-06-22  Miklos Szeredi <miklos@szeredi.hu>
1958         * No request allocation needed on inode and file release
1960 2004-06-21  Miklos Szeredi <miklos@szeredi.hu>
1962         * Fix possible inode leak in userspace in case of unfinished
1963         lookup/mknod/mkdir/symlink/link operation.
1965 2004-06-20  Miklos Szeredi <miklos@szeredi.hu>
1967         * Fix some races and cleanups in fuse_read_super()
1969 2004-06-19  Miklos Szeredi <miklos@szeredi.hu>
1971         * Requests are allocated at open time
1973 2004-06-03  Miklos Szeredi <miklos@szeredi.hu>
1975         * Build shared library as well as static (using libtool)
1977         * Change FUSE_MINOR_VERSION from 1 to 0.  I know it's illegal but
1978         there has not been a release with the previous minor number, and I
1979         hope nobody is using it for anything.
1981         * Change fuse_main(), so that default behavior is to go into
1982         background if mount is successful.  '-f' and '-d' options disable
1983         backgrounding.  This fixes the "Why does my FUSE daemon hang?"
1984         newbie complaint.
1986         * Cache ENOSYS (function not implemented) errors on *xattr, flush
1987         and fsync
1989         * Don't call getdir method from open() only from first readdir().
1990         Open is sometimes just used to store the current directory
1991         (e.g. find)
1993 2004-05-18  Miklos Szeredi <miklos@szeredi.hu>
1995         * Added flush() call
1997 2004-05-04  Miklos Szeredi <miklos@szeredi.hu>
1999         * Extended attributes support for 2.4 (patch by Cody Pisto)
2001 2004-04-20  Miklos Szeredi <miklos@szeredi.hu>
2003         * Fixed parser with modversions (Mattias Wadman)
2005 2004-04-19  Miklos Szeredi <miklos@szeredi.hu>
2007         * Added mount option parser to 2.4 build
2009 2004-04-13  Miklos Szeredi <miklos@szeredi.hu>
2011         * Replaced binary mount data with text options
2013         * Show FUSE specific mount options in /proc/mounts
2015         * Check in fuse.h whether _FILE_OFFSET_BITS is set to 64
2017 2004-04-09  Miklos Szeredi <miklos@szeredi.hu>
2019         * Check some limits so userspace won't get too big requests
2021 2004-04-05  Miklos Szeredi <miklos@szeredi.hu>
2023         * Kill compile warning
2025         * Upgraded user-mount patch for 2.6.5
2027 2004-04-02  Miklos Szeredi <miklos@szeredi.hu>
2029         * Add detection of user-mode-linux to configure
2031 2004-03-31  Miklos Szeredi <miklos@szeredi.hu>
2033         * fixed zero size case for getxattr and listxattr
2035 2004-03-30  Miklos Szeredi <miklos@szeredi.hu>
2037         * new fusermount flag '-z': lazy unmount, default is not lazy
2039         * Extended attributes operations added (getxattr, setxattr,
2040         listxattr, removexattr)
2042 2004-03-25  Miklos Szeredi <miklos@szeredi.hu>
2044         * If filesystem doesn't define a statfs operation, then an
2045         all-zero default statfs is returned instead of ENOSYS
2047 2004-03-24  Miklos Szeredi <miklos@szeredi.hu>
2049         * Add FS_BINARY_MOUNTDATA filesystem flag for kernels > 2.6.4
2051 2004-03-09  Miklos Szeredi <miklos@szeredi.hu>
2053         * Fix for uClinux (Christian Magnusson)
2055 2004-03-02  Miklos Szeredi <miklos@szeredi.hu>
2057         * fuse_main() adds "-n progname" to the fusermount command line
2059         * More kernel interface changes:
2061         * Lookup/getattr return cache timeout values
2063 2004-02-25  Miklos Szeredi <miklos@szeredi.hu>
2065         * Clean up option parsing in fuse_main()
2067         * Added fuse_get() function which returns the fuse object created
2068         by fuse_main()
2070 2004-02-20  Miklos Szeredi <miklos@szeredi.hu>
2072         * removed old way of mounting (fusermount mountpoint program)
2074         * more kernel interface changes:
2076         * added nanosecond precision to file times
2078         * removed interface version from mount data
2080         * added /proc/fs/fuse/version which contains MAJOR.MINOR
2082 2004-02-19  Miklos Szeredi <miklos@szeredi.hu>
2084         * statfs library API changed to match other methods.  Since this
2085           is not backward compatible FUSE_MAJOR_VERSION is changed to 2
2087         * kernel interface changes follow:
2089         * statfs changed to 64 bits, added 'bavail' field
2091         * add generation number to lookup result
2093         * optimized mknod/mkdir/symlink/link (no separate lookup is
2094         needed)
2096         * rdev size increased to 32 bits for mknod
2098         * kernel interface version changed to 3.1
2100 2004-02-18  Miklos Szeredi <miklos@szeredi.hu>
2102         * user-mount upgraded for 2.6.3 kernel
2104 2004-02-17  Miklos Szeredi <miklos@szeredi.hu>
2106         * Added user-mount.2.6.2-rc3.patch
2108         * Add FS_SAFE flag to fuse filesystem
2110         * fusermount should allow (un)mounting for non-root even if not
2111         suid-root
2113 2004-02-12  Miklos Szeredi <miklos@szeredi.hu>
2115         * Remove MS_PERMISSION mount flag (that means something else now)
2117 2004-02-10  Miklos Szeredi <miklos@szeredi.hu>
2119         * Added check for i_size_read/write functions to configure.in
2120         (patch by Valient Gough)
2122 2004-02-06  Miklos Szeredi <miklos@szeredi.hu>
2124         * Fixed writing >= 2G files
2126         * Check file size on open (with generic_file_open())
2128         * Readpage calls flush_dcache_page() after storing data
2130         * Use i_size_read/write for accessing inode->i_size
2132         * Make loopback mount of a fuse file work
2134 2004-02-04  Miklos Szeredi <miklos@szeredi.hu>
2136         * Released 1.1
2138 2004-01-29  Miklos Szeredi <miklos@szeredi.hu>
2140         * Properly check if the inode exists in fuse_invalidate
2142 2004-01-27  Miklos Szeredi <miklos@szeredi.hu>
2144         * Added -q option for fusermount
2146         * fuse_unmount() now uses -q option of fusermount, so no error is
2147         printed if the cause of the program exit is that the filesystem
2148         has already been unmounted
2150         * Fix i_nlink correctness after rmdir/unlink
2152 2004-01-26  Miklos Szeredi <miklos@szeredi.hu>
2154         * Released 1.1-pre2
2156 2004-01-26  Miklos Szeredi <miklos@szeredi.hu>
2158         * Fix typo (thanks Marcos Dione)
2160         * Compile fixes for 2.4 kernels
2162 2004-01-23  Miklos Szeredi <miklos@szeredi.hu>
2164         * Fix CONFIG_MODVERSIONS compile on 2.6
2166 2004-01-22  Miklos Szeredi <miklos@szeredi.hu>
2168         * Write all pending data before a RELEASE operation
2170         * Suppress 'Bad file descriptor' warning on exit
2172         * Replaced fusermount option '-d xxx' with '-n xxx' so it doesn't
2173         get confused with '-d' of fuse_main() (sorry about this change)
2175         * New fusermount option '-l' which enables big reads.  Big reads
2176         are now disabled by default.
2178         * fuse_main() can accept fusermount arguments after a '--'
2180 2004-01-19  Miklos Szeredi <miklos@szeredi.hu>
2182         * Support for exporting filesystem over NFS (see README.NFS)
2184 2004-01-14  Miklos Szeredi <miklos@szeredi.hu>
2186         * Support non-blocking writepage on 2.6.  This makes FUSE behave
2187         much more nicely in low-memory situations
2189         * Fix 32-bit dev handling in getattr and mknod for 2.6 kernels.
2190         (Note: the mknod method does not yet use 32bit device number)
2192 2004-01-13  Miklos Szeredi <miklos@szeredi.hu>
2194         * Code cleanups
2196 2004-01-07  Miklos Szeredi <miklos@szeredi.hu>
2198         * Released 1.1-pre1
2200 2004-01-06  Miklos Szeredi <miklos@szeredi.hu>
2202         * Integrated 2.6 kernel support patch by Michael Grigoriev
2204         * Improvements and cleanups for 2.6 kernels
2206 2004-01-05  Miklos Szeredi <miklos@szeredi.hu>
2208         * Added -d option to fusermount
2210 2003-12-15  Miklos Szeredi <miklos@szeredi.hu>
2212         * Added major+minor version to library API, and minor version to
2213           kernel API
2215 2003-12-13  David McNab <david@rebirthing.co.nz>
2217         * Implemented fsync support in examples/example.py
2219         * Implemented 'fsync' and 'statfs' methods in python
2220           interface
2222 2003-12-12  Miklos Szeredi <miklos@szeredi.hu>
2224         * Make it compile on 2.4.19.
2226         * Add fsync operation (write file failed on xemacs & vi)
2228 2003-12-12  David McNab <david@rebirthing.co.nz>
2230         * Added distutils support to the python module, as per standard
2231           python development practice
2233 2003-12-11  Miklos Szeredi <miklos@szeredi.hu>
2235         * Add file locking for mount/unmount (based on patch by Valient
2236         Gough)
2238 2003-12-11  David McNab <david@rebirthing.co.nz>
2240         * Python filesystem - was broken with python2.3, now fixed:
2241            - changed PyTuple_* calls to PySequence_*, because os.lstat
2242              is no longer returning a pure tuple
2243            - changed PyInt_Check() calls to also call PyLong_Check,
2244              to cover for cases (eg os.lstat) where longs are returned
2245            - Added support for file 'release' handling, which IMO is
2246              essential since this signals to a FS that writes to a file
2247              are complete (and therefore the file can now be disposed of
2248              meaningfully at the python filesystem's discretion)
2249            - Added '__init__' handler to base Fuse class, which allows
2250              your Python class to know the mountpoint and mount args,
2251              as attributes myfs.mountpoint, myfs.optlist, myfs.optdict
2253         * General:
2254            - added 'mount.fuse' script (in util/ dir), which is meant to be
2255              symlinked from /sbin, and which allows FUSE filesystems to
2256              be mounted with the 'mount' command, and listed in fstab;
2257              also, mount arguments get passed to your filesystem
2260 2003-11-04  Miklos Szeredi <miklos@szeredi.hu>
2262         * Fix kernel version detection (again).  Bugreport by Peter Levart
2264 2003-11-03  Miklos Szeredi <miklos@szeredi.hu>
2266         * Applied read combining patch by Michael Grigoriev (tested by
2267         Valient Gough and Vincent Wagelaar)
2269 2003-10-22  Miklos Szeredi <miklos@szeredi.hu>
2271         * Mtab handling fix in fusermount by "Valient Gough" (SF patch
2272         #766443)
2274 2003-10-13  Miklos Szeredi <miklos@szeredi.hu>
2276         * Error code fixes in kernel module
2278 2003-10-04  Miklos Szeredi <miklos@szeredi.hu>
2280         * kernel version detection fix
2282         * fusermount now uses "lazy" umount option
2284         * fusermount can use modprobe with module-init-tools
2286 2003-09-08  Miklos Szeredi <miklos@szeredi.hu>
2288         * Integrated caching patch by Michael Grigoriev
2290         * Added "Filesystems" file with descriptions of projects using
2291         FUSE
2293         * Added patch by Michael Grigoriev to allow compliation of FUSE
2294         kernel module for 2.6 kernels
2296 2003-06-02  Miklos Szeredi <miklos@szeredi.hu>
2298         * And another spec-file fix by Achim Settelmeier
2300 2003-05-26  Miklos Szeredi <miklos@szeredi.hu>
2302         * Spec-file fix by Achim Settelmeier
2304 2003-03-10  Miklos Szeredi <miklos@szeredi.hu>
2306         * Fix umount oops (found by Samuli Kärkkäinen)
2308 2003-03-05  Miklos Szeredi <miklos@szeredi.hu>
2310         * Merge of fuse_redhat.spec and fuse.spec by Achim Settelmeier
2312 2003-03-04  Miklos Szeredi <miklos@szeredi.hu>
2314         * Updated fuse.spec file (Achim Settelmeier)
2316 2003-02-19  Miklos Szeredi <miklos@szeredi.hu>
2318         * Version 1.0 released
2320 2003-02-12  Miklos Szeredi <miklos@szeredi.hu>
2322         * SuSE compilation fix by Juan-Mariano de Goyeneche
2324 2002-12-10  Miklos Szeredi <miklos@szeredi.hu>
2326         * The release() VFS call is now exported to the FUSE interface
2328 2002-12-05  Miklos Szeredi <miklos@szeredi.hu>
2330         * 64 bit file offset fixes in the fuse kernel module
2332         * Added function 'fuse_exit()' which can be used to exit the main
2333         loop
2335 2002-12-03  Miklos Szeredi <miklos@szeredi.hu>
2337         * Added _FILE_OFFSET_BITS=64 define to fuse.h.  Note, that this is
2338         an incompatible interface change.
2340 2002-10-28  Miklos Szeredi <miklos@szeredi.hu>
2342         * Portablility fix (bug reported by C. Chris Erway)
2344 2002-10-25  Miklos Szeredi <miklos@szeredi.hu>
2346         * Use Mark Glines' fd passing method for default operation instead
2347         of old reexec
2349 2002-10-22  Miklos Szeredi <miklos@szeredi.hu>
2351         * fix "Stale NFS file handle" bug caused by changes in 2.4.19
2353 2002-10-22  Miklos Szeredi <miklos@szeredi.hu>
2355         * fix incompatiblity with Red Hat kernels, with help from Nathan
2356         Thompson-Amato.
2358 2002-04-18  Mark Glines <mark@glines.org>
2360         * added an alternative to fuse_mount(), called
2361       fuse_mount_ioslave(), which does not need to reexec the
2362       FUSE program.
2363         * added a small helper util needed by fuse_mount_ioslave().
2365 2002-03-16  Mark Glines <mark@glines.org>
2367         * use struct fuse_statfs everywhere possible to avoid problems
2368       with the headerfiles changing struct statfs member sizes
2370 2002-03-01  Miklos Szeredi <miklos@szeredi.hu>
2372         * Another RPM spec file for RedHat >= 7 by Ian Pilcher
2374 2002-01-14  Miklos Szeredi <miklos@szeredi.hu>
2376         * RPM support by Achim Settelmeier
2378 2002-01-09  Miklos Szeredi <miklos@szeredi.hu>
2380         * Version 0.95 released
2382 2002-01-09  Miklos Szeredi <miklos@szeredi.hu>
2384         * Revaidate all path components not just the last, this means a
2385         very small performance penalty for being more up-to-date.
2387 2002-01-08  Miklos Szeredi <miklos@szeredi.hu>
2389         * Update and fix python interface
2391 2002-01-07  Mark Glines <mark@glines.org>
2393         * Added statfs() support to kernel, lib, examples, and perl!
2395 2001-12-26  Miklos Szeredi <miklos@szeredi.hu>
2397         * Better cross compilation support
2399         * Ported to Compaq IPAQ
2401 2001-12-20  Miklos Szeredi <miklos@szeredi.hu>
2403         * Added function fuse_get_context() to library API (inspired by
2404         patch from Matt Ryan)
2406         * Added flags to fusermount and to kernel interface to control
2407         permission checking
2409         * Integrated fuse_set_operations() into fuse_new()
2411 2001-12-08  Miklos Szeredi <miklos@szeredi.hu>
2413         * Applied header protection + extern "C" patch by Roland
2414         Bauerschmidt
2416 2001-12-02  Miklos Szeredi <miklos@szeredi.hu>
2418         * Added perl bindings by Mark Glines
2420 2001-11-21  Miklos Szeredi <miklos@szeredi.hu>
2422         * Cleaned up way of mounting simple filesystems.
2424         * fuse_main() helper function added
2426 2001-11-18  Miklos Szeredi <miklos@szeredi.hu>
2428         * Optimized read/write operations, so that minimal copying of data
2429         is done
2431 2001-11-14  Miklos Szeredi <miklos@szeredi.hu>
2433         * Python bindings by Jeff Epler added
2435 2001-11-13  Miklos Szeredi <miklos@szeredi.hu>
2437         * Fixed vfsmount reference leak in fuse_follow_link
2439         * FS blocksize is set to PAGE_CACHE_SIZE, blksize attribute from
2440         userspace is ignored
2442 2001-11-09  Miklos Szeredi <miklos@szeredi.hu>
2444         * Started ChangeLog