fusermount: revert modprobe change
[fuse.git] / ChangeLog
blob9846bf4f9e431d9d91177741dfb6e1e6fbbc56d6
1 2006-09-30  Miklos Szeredi <miklos@szeredi.hu>
3         * fusermount: revert modprobe change (2006-08-18) since it
4         doesn't work reliably with udev
6         * Add support for block device backed filesystems.  This mode is
7         selected with the 'blkdev' option, which is privileged.
9         * Add support for the bmap (FIBMAP ioctl) operation on block
10         device backed filesystems.  This allows swapon and lilo to work on
11         such filesystems.
13         * kernel changes:
15         * Drop support for kernels earlier than 2.6.9.  Kernel module from
16         previous (2.5.x) release can be used with library from this
17         release
19         * In fuse_dentry_revalidate() use dget_parent() instead of
20         dereferencing d_parent, since there's no protection against parent
21         changing and going away
23         * Protect nlookup from concurrent updates
25         * In lookup if a directory alias exists but is unused,
26         then get rid of it, otherwise return -EBUSY.
28         * In mkdir if a directory alias exists, return success, but leave
29         dentry negative.  In reality this could happen if a remote rename
30         immediately followed the mkdir.
32         * Don't BUG in fuse_iget() if multiple retries are needed to get a
33         good inode.  This could happen if several lookups are racing for
34         the same inode.
36 2006-09-29  Miklos Szeredi <miklos@szeredi.hu>
38         * Fix compilation on 2.6.9.  Report from Troy Ayers
40 2006-09-27  Miklos Szeredi <miklos@szeredi.hu>
42         * Fix Oops in fuse_readpages().  Reported by David Shaw
44 2006-09-24  Csaba Henk <csaba.henk@creo.hu>
46         * Add support for nanosec times on FreeBSD
48         * Fix FreeBSD compatibility issues
50 2006-09-23  Miklos Szeredi <miklos@szeredi.hu>
52         * Fix one more compatibility bug.  Thanks to Ricardo Correia
54         * Fix utimens compilation with uClibc.  Patch from Jamie Guinan
56 2006-09-22  Miklos Szeredi <miklos@szeredi.hu>
58         * Fixed several compatibility bugs in low level interface.
59         Reported by Ricardo Correia
61         * Add workaround for ARM caching bug
63 2006-09-16  Miklos Szeredi <miklos@szeredi.hu>
65         * Rename new utimes() method to more logical utimens()
67 2006-09-14  Miklos Szeredi <miklos@szeredi.hu>
69         * Fuse tried to unlink already unlinked hidden files.  Bug
70         reported by Milan Svoboda
72 2006-09-10  Miklos Szeredi <miklos@szeredi.hu>
74         * Released 2.6.0-rc1
76 2006-09-10  Miklos Szeredi <miklos@szeredi.hu>
78         * kernel: Fix unlock on close for kernels < 2.6.18
80         * Add ulockmgr library & server.  This can be used for handling
81         file locking requests either directly from libfuse or over a
82         network, etc.  This first version is not optimized and the number
83         of file descriptors it uses may get out of hand
85 2006-09-07  Miklos Szeredi <miklos@szeredi.hu>
87         * lib: Add interrupt support to high level library, which may be
88         enabled with the 'intr' mount option.
90         * When an operation is interrupted the thread handling that
91         operation will receive SIGUSR1 (or other signal specified with the
92         'intr_signal=N' option).  The library installs a no-op signal
93         handler for this signal, unless there's already a handler
94         installed.
96         * The filesystem may query interrupt status (regardless of 'intr')
97         with the fuse_interrupted() function.
99         * mount.fuse: initialize $HOME if not set.  Report from Sven Goldt
101 2006-09-03  Miklos Szeredi <miklos@szeredi.hu>
103         * lib: Multithreaded loop now allows unlimited number of threads.
104         This is needed for locking operations which may block
105         indefinitely.  Also the kernel now doesn't limit the number of
106         outstanding requests so the library shouldn't do so either.
108 2006-09-01  Miklos Szeredi <miklos@szeredi.hu>
110         * Fix recursive lock bug in interrupt handling
112         * Add utimes() method to highlevel interface, which supports
113         setting times with nanosecond resolution
115 2006-08-18  Miklos Szeredi <miklos@szeredi.hu>
117         * kernel: fix page leak if fuse_readpages() failed in it's
118         initialization.  Bug found and original patch from Alexander
119         Zarochentsev
121         * For linux kernels >=2.6.18 (2.6.19 if using the fuse module from
122         the kernel tree) the statfs method will receive the path within
123         the filesystem on which the stat(v)fs syscall was called
125         * fusermount: try to modprobe fuse module if invoked by root and
126         unable to open device.  This is needed with udev, since the device
127         node will be created only when the module is inserted, hence
128         module autoloading won't work.  Reported by Szakacsits Szabolcs
130 2006-07-30  Miklos Szeredi <miklos@szeredi.hu>
132         * fusermount: if selinux is active, restore the original file's
133         security context in unmount_rename().  Redhat bugzilla id 188561.
134         Patch from Yves Perrenoud
136         * Add POSIX file locking operation to high level library
138         * Initialize context for unlink of hidden files on umount.  Bug
139         reported by Tim Stoakes
141 2006-07-14  Miklos Szeredi <miklos@szeredi.hu>
143         * Multiple release() calls can race with each other, resulting in
144         the hidden file being deleted before the last release finishes.
145         Bug found and patch tested by Mark Huijgen
147 2006-07-05  Miklos Szeredi <miklos@szeredi.hu>
149         * fusermount: if /dev/fuse doesn't exist, suggest modprobing fuse;
150         this makes sense on systems using udev.  Reported by Szakacsits
151         Szabolcs
153 2006-06-29  Miklos Szeredi <miklos@szeredi.hu>
155         * Released 2.6.0-pre3
157 2006-06-29  Miklos Szeredi <miklos@szeredi.hu>
159         * Support in kernel module for file locking and interruption.  The
160         same functionality is available in official kernels >= 2.6.18
162 2006-06-28  Miklos Szeredi <miklos@szeredi.hu>
164         * Add POSIX file locking support
166         * Add request interruption
168 2006-06-06  Miklos Szeredi <miklos@szeredi.hu>
170         * Add missing pthread_rwlock_destroy().  Patch from Remy Blank
172 2006-06-05  Remy Blank <remy.blank@pobox.com>
174         * lib: canonicalize mount point in fuse_helper_opt_proc() so that
175         unmounting succeeds even if mount point was relative.
177 2006-06-04  Csaba Henk <csaba.henk@creo.hu>
179         * lib: fix emergency umount in helper.c when malloc fails.
180         (The way it was done would end up in a segfault.)
182 2006-06-01  Csaba Henk <csaba.henk@creo.hu>
184         * lib: adjust threading related compiler flags.
185         Switch to "-pthread" from "-lpthread" as that's the preferred
186         one on several platforms. Consulted with Terrence Cole and
187         Miklos Szeredi
189 2006-05-08  Miklos Szeredi <miklos@szeredi.hu>
191         * lib: search fusermount in installation directory (bindir) as
192         well as in PATH.
194 2006-05-03  Miklos Szeredi <miklos@szeredi.hu>
196         * lib: fix compilation if CLOCK_MONOTONIC is not defined.
197         Reported by Christian Magnusson
199 2006-04-23  Csaba Henk <csaba.henk@creo.hu>
201         * lib: make FreeBSD mount routine recognize if kernel features
202         backgrounded init and if it does, run the mount util in foreground
203         (similarly to Linux)
205 2006-04-21  Miklos Szeredi <miklos@szeredi.hu>
207         * kernel: fix fput deadlock fix, the lockless solution could lead
208         to "VFS: busy inodes after umount..."
210         * kernel: fix race between checking and setting file->private_data
211         for the device.  Found by Al Viro
213 2006-04-11  Miklos Szeredi <miklos@szeredi.hu>
215         * kernel: remove request pool, instead allocate requests on
216         demand.  Account the number of background requests, and if they go
217         over a limit, block the allocation of new requests.
219         * kernel: fix deadlock if backgrounded request holds the last
220         reference to the super block
222         * kernel: don't use fuse_reset_request() during direct I/O
224 2006-04-06  Csaba Henk <csaba.henk@creo.hu>
226         * lib: Let FreeBSD mount option parsing routine recognize "no"
227         prefixes for FUSE specific options as well
229 2006-04-01  Miklos Szeredi <miklos@szeredi.hu>
231         * lib: Add missing rwlock initialization.  Patch by Ryan Bradetich
233 2006-03-17  Miklos Szeredi <miklos@szeredi.hu>
235         * API changes:
237         * fuse_main(), fuse_setup() and fuse_new() have an additionl
238         user_data parameter
240         * fuse_mount() returns a 'struct fuse_chan' pointer instead of a
241         file descriptor
243         * fuse_unmount() receives a 'struct fuse_chan' pointer.  It
244         destroys the given channel
246         * fuse_teardown() no longer has a file descriptor parameter
248         * new exported functions: fuse_session_remove_chan(),
249         fuse_get_session(), fuse_daemonize()
251         * fuse_chan_recv() may now return a new channel which will be used
252         to send the reply
254 2006-03-16  Miklos Szeredi <miklos@szeredi.hu>
256         * Released 2.6.0-pre2
258 2006-03-16  Miklos Szeredi <miklos@szeredi.hu>
260         * Don't unmount if already unmounted.  This fixes a problem seen
261         in the following situation: Lazy unmount a busy filesystem; Mount
262         a new one in top; When the first finally unmounts, the second also
263         unmounts.  Reported by Franco Broi
265 2006-03-15  Miklos Szeredi <miklos@szeredi.hu>
267         * lowlevel lib: use indirect function calls instead of a
268         switch/case construct.  Besides increased efficiency it helps
269         maintainability & readability too.  Patch from Florin Malita
271 2006-03-13  Miklos Szeredi <miklos@szeredi.hu>
273         * kernel: replace global spinlock with a per-connection spinlock
275 2006-03-10  Miklos Szeredi <miklos@szeredi.hu>
277         * Fix source compatibility breakage for fuse_unmount().  Report
278         from Yura Pakhuchiy
280 2006-03-02  Miklos Szeredi <miklos@szeredi.hu>
282         * Fix O_ASYNC handling in fuse_dev_release().  From Jeff Dike
284 2006-03-01  Miklos Szeredi <miklos@szeredi.hu>
286         * Add O_ASYNC and O_NONBLOCK support to FUSE device.  Patch by
287         Jeff Dike
289         * Renamed fuse_chan_receive() to fuse_chan_recv() and changed
290         interface to return -errno in case of error.
292 2006-03-01  Csaba Henk <csaba.henk@creo.hu>
294         * libfuse: pass device file descriptor to fuse_unmount(), rewrite
295         FreeBSD implementation so that it uses libc (sysctl backed) instead
296         of an embdedded script (kmem backed). Adjust the control flow of
297         hello_ll so that device doesn't get closed before unmount attempt.
299 2006-02-25  Miklos Szeredi <miklos@szeredi.hu>
301         * Lowlevel lib: return all-zero statvfs data if filesystem doesn't
302         implement method.  This is needed on FreeBSD, and nicer on Linux
303         too.  Highlevel lib already did this.  Reported by Csaba Henk
305         * Fix negative entry handling.  There was a bug, that negative
306         lookups with timeouts (nodeid == 0) returned -EIO.
308 2006-02-23  Miklos Szeredi <miklos@szeredi.hu>
310         * Fix race between RELEASE and UNLINK, which might leave
311         .fuse_hidden* files around
313 2006-02-21  Miklos Szeredi <miklos@szeredi.hu>
315         * fusexmp_fh: implement flush() method and call close() on the
316         open file descriptor.  This is needed if used on an NFS
317         filesystem, which buffers data until file is closed.  Franco Broi
318         spotted the situation when 'cp -p' failed to set the modification
319         time because of this.
321 2006-02-20  Miklos Szeredi <miklos@szeredi.hu>
323         * Released 2.6.0-pre1
325 2006-02-19  Miklos Szeredi <miklos@szeredi.hu>
327         * libfuse: fix use-after-free bug in interruptred reply_entry().
328         Patch from John Muir
330         * libfuse: fix wrong symbol versioning for fuse_mount.  Debian bug
331         ID: 352631.  Found by Stéphane Rosi
333 2006-02-17  Miklos Szeredi <miklos@szeredi.hu>
335         * Lowlevel lib: Unify fuse_dirent_size() and fuse_add_dirent()
336         into a single function fuse_add_direntry().  This cleans up the
337         interface and makes it possible to do stacking.
339 2006-02-16  Miklos Szeredi <miklos@szeredi.hu>
341         * Fix rare race betweeen abort and release caused by failed iget()
342         in fuse_create_open().
344         * Add 'ac_attr_timeout' option e.g. for filesystems which do their
345         own attribute caching.
347 2006-02-15  Miklos Szeredi <miklos@szeredi.hu>
349         * Work around FreeBSD runtime linker "feature" which binds an old
350         version of a symbol to internal references if the symbol has more
351         than one version.  This resulted in infinite recursion in
352         fuse_lowlevel_new_compat25().
354 2006-02-10  Csaba Henk <csaba.henk@creo.hu>
356         * Refine clock_gettime() querying so that linker options
357         shall be set as it's appropriate for the target platform.
359 2006-02-09  Miklos Szeredi <miklos@szeredi.hu>
361         * Fix udev rule syntax.  Reported by Nix
363 2006-02-08  Miklos Szeredi <miklos@szeredi.hu>
365         * In some cases udev rule seems to be ineffective when installed
366         as 40-fuse.rules but work as 60-fuse.rules.  Reported by John Hunt
368 2006-02-03  Miklos Szeredi <miklos@szeredi.hu>
370         * Fix compilation when build directory is different from source
371         directory.  Reported by Frédéric L. W. Meunier
373 2006-02-02  Miklos Szeredi <miklos@szeredi.hu>
375         * Fix even bigger bug introduced in fix for request_end() on
376         2006-01-14.  Reported by Gal Rosen
378 2006-01-30  Miklos Szeredi <miklos@szeredi.hu>
380         * highlevel-lib: add 'auto_cache' option.  This caches file data
381         based on modification time and size
383 2006-01-20  Miklos Szeredi <miklos@szeredi.hu>
385         * Sanitize storage type and help message in mount_bsd.c.  Patch
386         from Csaba Henk
388         * fuse_opt: add new helper constants FUSE_OPT_KEY_KEEP and
389         FUSE_OPT_KEY_DISCARD
391         * Add options 'max_readahead', 'sync_read' and 'async_read'
393         * Kernel ABI version 7.6:
395         * Negotiate the 'max_readahead' value and 'async_read' flags with
396         userspace in the INIT method
398         * Add connection info to ->init() methods to both lowlevel and
399         highlevel API
401         * Fall back to synchronous read() behavior if either library or
402         userspace filesystem is using the old interface version.  This is
403         needed so non-updated filesystems won't be confused by the
404         different read() behavior
406 2006-01-19  Miklos Szeredi <miklos@szeredi.hu>
408         * lib: if "fsname=" option was given, pass it to fusermount
410         * fuse_opt: add new fuse_opt_insert_arg() function, which is
411         needed by filesystems to implement some argument manipulations
412         correctly
414         * fuse_opt: fix memory leak in handling "--" option
416 2006-01-18  Miklos Szeredi <miklos@szeredi.hu>
418         * kernel: fix detection of case when fuse is not configured into
419         the kernel either as module or built-in
421         * fuse_opt.h: fix incompatibility with C++ compilers by renaming
422         'template' structure member to 'templ'.  Reported by Takashi Iwai
424         * fuse.h: fix compatibility bugs.  Patch by Yura Pakhuchiy
426         * kernel: support version 2.6.16 (i_sem -> i_mutex)
428 2006-01-16  Miklos Szeredi <miklos@szeredi.hu>
430         * Added (again) asynchronous readpages support
432         * Each connection now shows up under /sys/fs/fuse/connections
434         * Connection attributes exported to sysfs: 'waiting' number of
435         waiting requests; 'abort' abort the connection
437         * Connection may be aborted through either the sysfs interface or
438         with 'umount -f mountpoint'
440 2006-01-14  Miklos Szeredi <miklos@szeredi.hu>
442         * Released 2.5.0
444 2006-01-14  Miklos Szeredi <miklos@szeredi.hu>
446         * kernel: fix a couple of bugs
448         * Order of request_end() and fuse_copy_finish() was wrong.
449         Posthumous note: Franco Broi managed to exploit this, though it
450         seemed quite impossible
452         * request_end() used request pointer after decrementing refcount
454         * Clearing ->connected or ->mounted connection flags could race
455         with setting other bitfields not protected with a lock
457 2006-01-10  Miklos Szeredi <miklos@szeredi.hu>
459         * kernel: add necessary compile flags for 2.4.X/x86_64.
460         Report from Sean Ziegeler
462 2006-01-09  Miklos Szeredi <miklos@szeredi.hu>
464         * Released 2.5.0-pre2
466 2006-01-09  Miklos Szeredi <miklos@szeredi.hu>
468         * Applied patch from Csaba Henk, to update mount_bsd to new
469         fuse_mount() semantics
471         * Ignore auto,noauto,... options in mount.fuse.  Reported by Frank
472         Steiner and Don Taber
474         * fusermount: add 'dirsync' mount option
476 2006-01-07  Miklos Szeredi <miklos@szeredi.hu>
478         * Improved help reporting and added version reporting to library
480 2006-01-06  Miklos Szeredi <miklos@szeredi.hu>
482         * Change working directory to "/" even if running in the
483         foreground.  Patch from Jonathan Brandmeyer
485         * Changed lots of functions to use 'struct fuse_args' instead of
486         separate argc and argv
488         * Added fuse_parse_cmdline(), fuse_set_signal_handlers() and
489         fuse_remove_signal_handlers() functions, so that it's now pretty
490         easy to get all the functionality of fuse_main() with a filesystem
491         using the lowlevel API.
493 2006-01-02  Miklos Szeredi <miklos@szeredi.hu>
495         * mount.fuse: the 'user' option should be ignored. Report and
496         solution from Mattd.
498         * mount.fuse: export PATH in the right place. Report and patch
499         from Hannes Schweizer
501 2005-12-16  Miklos Szeredi <miklos@szeredi.hu>
503         * Clean up the option parsing interface slightly, by creating an
504         "argument list" structure, that contains the argument vector and
505         count
507 2005-12-15  Miklos Szeredi <miklos@szeredi.hu>
509         * fusermount: check if /mnt/mtab is a symlink and don't modify it
510         in that case
512         * kernel: simplify request size limiting. INIT only contains
513         maximum write size, maximum path component size remains fixed at
514         1024 bytes, and maximum xattr size depends on read buffer.
516 2005-12-14  Miklos Szeredi <miklos@szeredi.hu>
518         * Fix readdir() failure on x86_64, of 32bit programs compiled
519         without largefile support.  Bug report and help from Anthony
520         Kolasny
522         * If lookup returns invalid mode, return -EIO instead of creating
523         a regular file
525         * Add current output argument vector to option processing
526         function
528 2005-12-12  Miklos Szeredi <miklos@szeredi.hu>
530         * Fix stale code in ifdef FreeBSD.  Patch from Csaba Henk
532 2005-12-09  Miklos Szeredi <miklos@szeredi.hu>
534         * Released 2.5.0-pre1
536 2005-12-09  Miklos Szeredi <miklos@szeredi.hu>
538         * libfuse: added option parsing interface, defined in
539         <fuse_opt.h>.
541 2005-12-07  Miklos Szeredi <miklos@szeredi.hu>
543         * Return EIO for file operations (read, write, fsync, flush) on
544         open files whose inode has become "bad".  Inodes will be marked
545         "bad" if their type changes.  Bug report by Csaba Henk
547 2005-12-06  Miklos Szeredi <miklos@szeredi.hu>
549         * Use bigger request buffer size.  write() did not work on archs
550         with > 4k page size, Bug report by Mark Haney
552         * ABI version 7.5:
554         * Extend INIT reply with data size limits
556 2005-12-02  Miklos Szeredi <miklos@szeredi.hu>
558         * Fix memory leak in fuse_read_cmd()/fuse_process_cmd().  Bug
559         reported by Vincenzo Ciancia
561         * Handle exit-by-umount in fuse_read_cmd()
563 2005-11-29  Miklos Szeredi <miklos@szeredi.hu>
565         * Check if '-msoft-float' option is supported by compiler when
566         configuring for a 2.4.x kernel.  Bug report by Mark Haney
568         * In multithreaded loop send a TERM signal to the main thread if
569         one of the other threads exit.  Needed on FreeBSD for a clean exit
570         on umount.  Should not cause any harm on Linux either
572 2005-11-28  Miklos Szeredi <miklos@szeredi.hu>
574         * Fix bug in 32-bit file handle compatibility
576 2005-11-27  Miklos Szeredi <miklos@szeredi.hu>
578         * Block TERM, INT, HUP and QUIT signals in all but the main
579         thread.  According to POSIX it's not specified which thread will
580         receive these signals.
582         * Kernel changes:
584         * Check for directory aliasing on mkdir, not just on lookup
586         * Check for special node ID values in create+open operation
588         * Sync with -mm: readv, writev, aio_read and aio_write methods
589         added to file operations
591         * Cleanups: lookup code, page offset calculation
593         * ABI stepped to 7.4, changes:
595         * frsize member added to fuse_kstatfs structure
597         * added support for negative entry caching: on lowlevel API if
598         fuse_entry_param::ino is set to zero in reply to a lookup request,
599         the kernel will cache the dentry for the specified amount of time.
601         * libfuse: added 'negative_timeout' option: specifies how much
602         negative entries should be cached.  Default is zero, to be
603         compatible with prior versions
605 2005-11-22  Miklos Szeredi <miklos@szeredi.hu>
607         * Add detection of mainline FUSE code in running kernel
609 2005-11-21  Miklos Szeredi <miklos@szeredi.hu>
611         * Don't use async cancelation in multithreaded loop.  This makes
612         it more portable to systems where read() is not async cancel safe.
613         Report from Andriy Gapon
615 2005-11-20  Miklos Szeredi <miklos@szeredi.hu>
617         * Warn if API version 11 compatibility is requested
619 2005-11-17  Miklos Szeredi <miklos@szeredi.hu>
621         * More FreeBSD merge
623         * fusermount: don't allow mountpoints with '\n', '\t', or '\\' in
624         them, because it corrupts /etc/mtab.  Found by Thomas Biege
625         CVE-2005-3531
627         * libfuse: don't use system() to invoke 'fusermount -u ...'
628         because it breaks mountpoints with spaces in them into multiple
629         arguments
631 2005-11-16  Miklos Szeredi <miklos@szeredi.hu>
633         * Merge library part of FreeBSD port.  Patch by Csaba Henk
635 2005-11-11  Miklos Szeredi <miklos@szeredi.hu>
637         * Use 64bit type for file handle, so the full range supported by
638         the kernel interface is available to applications
640 2005-11-10  Miklos Szeredi <miklos@szeredi.hu>
642         * Moved mountpoint argument checking from fuse_parse_cmdline() to
643         fuse_mount() in preparation to FreeBSD merge.
645 2005-11-08  Miklos Szeredi <miklos@szeredi.hu>
647         * Remove unneeded close() from fuse_teardown().  Spotted by Csaba
648         Henk.
650 2005-11-07  Miklos Szeredi <miklos@szeredi.hu>
652         * Make the statfs change backwards compatible.
654 2005-11-06  Miklos Szeredi <miklos@szeredi.hu>
656         * Change ->statfs() method to use 'struct statvfs' instead of
657         'struct statfs'.  This makes the API more portable since statvfs()
658         is defined by POSIX.
660 2005-10-28  Miklos Szeredi <miklos@szeredi.hu>
662         * Add fgetattr() method, which currently will only be called after
663         a successful call to a create() method.
665 2005-10-26  Miklos Szeredi <miklos@szeredi.hu>
667         * Change kernel ABI version to 7.3
669         * Add ACCESS operation.  This is called from the access() system
670         call if 'default_permissions' mount option is not given, and is
671         not called on kernels 2.4.*
673         * Add atomic CREATE+OPEN operation.  This will only work with
674         2.6.15 (presumably) or later Linux kernels.
676         * Add ftruncate() method.  This will only work with 2.6.15
677         (presumably) or later Linux kernels.
679         * Fix kernel module compile if kernel source and build directories
680         differ.  Report and initial patch by John Eastman
682 2005-10-18  Miklos Szeredi <miklos@szeredi.hu>
684         * lib: optimize buffer reallocation in fill_dir.
686 2005-10-17  Miklos Szeredi <miklos@szeredi.hu>
688         * Released 2.4.1
690 2005-10-14  Miklos Szeredi <miklos@szeredi.hu>
692         * libfuse: add debug for write result (by Shaun Jackman) and
693         warnings for too large read/write result
695 2005-10-11  Miklos Szeredi <miklos@szeredi.hu>
697         * Spelling fixes, thanks to Ioannis Barkas
699 2005-10-10  Miklos Szeredi <miklos@szeredi.hu>
701         * fuse_common.h: use extern "C".  Thanks to Valient Gough for the
702         patch
704 2005-10-07  Miklos Szeredi <miklos@szeredi.hu>
706         * highlevel-lib: init() and destroy() methods didn't have an
707         initialized fuse_context.  Bug reported by Tim Stoakes
709 2005-10-04  Miklos Szeredi <miklos@szeredi.hu>
711         * Released 2.4.0
713 2005-10-03  Miklos Szeredi <miklos@szeredi.hu>
715         * Add documentation to fuse_lowlevel.h
717         * API cleanups:
719         * Remove definitions of unused FATTR_CTIME / FUSE_SET_ATTR_CTIME
721         * Move fuse_mount() and fuse_unmount() to fuse_common.h
723         * Change the return type of fuse_reply_none() from int to void.
725 2005-09-30  Miklos Szeredi <miklos@szeredi.hu>
727         * kernel: NFS exporting leaked dentries.  Bug found and fixed by
728         Akshat Aranya.
730 2005-09-29  Miklos Szeredi <miklos@szeredi.hu>
732         * fusermount: fix error message, when unable to open /dev/fuse.
733         Report by Balázs Pozsár
735 2005-09-28  Miklos Szeredi <miklos@szeredi.hu>
737         * UClibc fixes from Christian Magnusson
739 2005-09-27  Miklos Szeredi <miklos@szeredi.hu>
741         * Added NAME="%k" to util/udev.rules.  Fix by Mattias Wadman.
743 2005-09-26  Miklos Szeredi <miklos@szeredi.hu>
745         * Released 2.4.0-rc1
747 2005-09-26  Miklos Szeredi <miklos@szeredi.hu>
749         * fusermount: allow user umount in the case when /etc/mtab is a
750         symlink to /proc/mounts.  Reported by Balázs Pozsár.
752 2005-09-23  Miklos Szeredi <miklos@szeredi.hu>
754         * Check for special node ID values in lookup and creation
756 2005-09-22  Miklos Szeredi <miklos@szeredi.hu>
758         * Slight optimization in returning EINVAL error in case of an open
759         with O_DIRECT flag.
761 2005-09-20  Miklos Szeredi <miklos@szeredi.hu>
763         * Remove '--enable-auto-modprobe' configure flag.  Module
764         auto-loading is now handled by the kernel.
766 2005-09-15  Miklos Szeredi <miklos@szeredi.hu>
768         * Install UDEV rule file, so /dev/fuse is created with mode 0666.
769         Help from Jens M. Noedler.
771 2005-09-14  Miklos Szeredi <miklos@szeredi.hu>
773         * Add memory cleanup on thread exit
775 2005-09-13  Miklos Szeredi <miklos@szeredi.hu>
777         * Set umask to zero in fusexmp and fusexmp_fh, so that
778         files/directories are created with the requested mode.
780 2005-09-12  Miklos Szeredi <miklos@szeredi.hu>
782         * Don't ignore read error in multithreaded loop
784 2005-09-08  Miklos Szeredi <miklos@szeredi.hu>
786         * Released 2.4.0-pre2
788 2005-09-08  Miklos Szeredi <miklos@szeredi.hu>
790         * Revert lock and access operations.  Postpone these until 2.5.
792 2005-09-02  Miklos Szeredi <miklos@szeredi.hu>
794         * Fix compile warning on 2.6.13 and later
796         * Fix compilation on old kernels
798 2005-08-19  Miklos Szeredi <miklos@szeredi.hu>
800         * lib: always refresh directory contents after rewinddir() to
801         conform to SUS.  Bug found by John Muir.
803 2005-08-15  Miklos Szeredi <miklos@szeredi.hu>
805         * Released 2.4.0-pre1
807 2005-08-14  Miklos Szeredi <miklos@szeredi.hu>
809         * lib: cleaned up (or messed up, depending on your POV) the low
810         level library API.  Hopefully this is close to the final form.
812 2005-08-05  Miklos Szeredi <miklos@szeredi.hu>
814         * fusermount: don't allow empty mountpoint argument, which defeats
815         automatic umounting in fuse_main().  Bugreport by Václav Jůza
817 2005-08-03  Miklos Szeredi <miklos@szeredi.hu>
819         * fix warnings in fuse.h and fuse_lowlevel.h if -Wshadow compiler
820         option is used (Paul Alfille).
822 2005-08-02  Miklos Szeredi <miklos@szeredi.hu>
824         * highlevel-lib: added mount options "attr_timeout" and
825         "entry_timeout".  These options control the length of time file
826         attributes and entries (names) are cached.  Both default to 1.0
827         second.
829         * kernel: correctly handle zero timeout for attributes and entries
831 2005-08-01  Miklos Szeredi <miklos@szeredi.hu>
833         * Added missing symbols to versionscript (Joshua J. Berry)
835         * kernel: implement two flags, open can set: 'direct_io' and
836         'keep_cache'.  These correspond exactly to mount options
837         'direct_io' and 'kernel_cache', but allow a per-open setting.
839         * Move 'direct_io' and 'kernel_cache' mount option handling to
840         userspace.  For both mount options, if the option is given, then
841         the respective open flag is set, otherwise the open flag is left
842         unmodified (so the filesystem can set it).
844         * lib (highlevel): make open method optional
846 2005-07-28  Miklos Szeredi <miklos@szeredi.hu>
848         * kernel: invalidate attributes for read/readdir/readlink
849         operations
851         * kernel: detect newer UML kernels
853 2005-07-26  Miklos Szeredi <miklos@szeredi.hu>
855         * Make the installation path of fuse.ko and mount.fuse
856         configurable through INSTALL_MOD_PATH and MOUNT_FUSE_PATH
857         environment variables.  Requirement and help from Csaba Henk.
859 2005-07-22  Miklos Szeredi <miklos@szeredi.hu>
861         * Fix bug, that causes filesystem requests to hang when unique
862         request counter becomes negative.  This happens after
863         2,147,483,648 operations, so most people won't care.  Thanks to
864         Franco Broi for the report and testing.
866 2005-07-21  Miklos Szeredi <miklos@szeredi.hu>
868         * Don't change mtime/ctime/atime to local time on read/write.
869         Bug reported by Ben Grimm
871         * Install fuse_common.h and fuse_lowlevel.h.  Report by Christian
872         Magnusson
874         * fusermount: use getopt_long() for option parsing.  It allows the
875         use of '--' to stop argument scanning, so fusermount can now
876         operate on directories whose names begin with a '-'.  Patch by
877         Adam Connell
879 2005-07-15  Miklos Szeredi <miklos@szeredi.hu>
881         * fusermount: add '-v', '--version' and '--help' options
883         * add inode based API
885 2005-07-12  Miklos Szeredi <miklos@szeredi.hu>
887         * lib: don't block signals in worker threads.  Problem noticed by
888         Usarin Heininga
890 2005-07-07  Miklos Szeredi <miklos@szeredi.hu>
892         * lib: don't allow both 'allow_other' and 'allow_root' options to
893         be given
895 2005-07-06  Miklos Szeredi <miklos@szeredi.hu>
897         * fusermount: check if mountpoint is empty (only '.' and '..' for
898         directories, and size = 0 for regular files).  If "nonempty"
899         option is given, omit this check.  This is useful, so users don't
900         accidentally hide data (e.g. from backup programs).  Thanks to
901         Frank van Maarseveen for pointing this out.
903         * kernel: check if mandatory mount options ('fd', 'rootmode',
904         'user_id', 'group_id') are all given
906         * lib: simplify 'readdir_ino' handling
908         * lib: add mount options 'umask=M', 'uid=N', 'gid=N'
910 2005-07-03  Miklos Szeredi <miklos@szeredi.hu>
912         * kernel: clean up 'direct_io' code
914 2005-06-28  Miklos Szeredi <miklos@szeredi.hu>
916         * Add 'mount.fuse' written by Petr Klima
918         * '/dev/fuse' is created by 'make install' if does not yet exist
920 2005-06-20  Miklos Szeredi <miklos@szeredi.hu>
922         * Fix UCLIBC compile error.  Patch by Christian Magnusson
924 2005-06-08  Miklos Szeredi <miklos@szeredi.hu>
926         * Enable the auto-loading of the module via access to the
927         corresponding device file.  Patch by Takashi Iwai.
929         * Allow mounting a regular file (over a regular file) for
930         unprivleged users.
932         * Do not create temporary device file.  Require "/dev/fuse" to
933         exist, and be readable/writable by the mounting user.
935 2005-06-02  Miklos Szeredi <miklos@szeredi.hu>
937         * Released 2.3.0
939 2005-06-02  Miklos Szeredi <miklos@szeredi.hu>
941         * Fix serious information leak: if the filesystem returns a short
942         byte count to a read request, and there are non-zero number of
943         pages which are not filled at all, these pages will not be zeroed.
944         Hence the user can read out previous memory contents.  Found by
945         Sven Tantau.
947 2005-05-27  Miklos Szeredi <miklos@szeredi.hu>
949         * Add "readdir_ino" mount option, which tries to fill in the d_ino
950         field in struct dirent.  This mount option is ignored if "use_ino"
951         is used.  It helps some programs (e.g. 'pwd' used over NFS from a
952         non-Linux OS).  Patch by David Shaw.
954 2005-05-12  Miklos Szeredi <miklos@szeredi.hu>
956         * Released 2.3-rc1
958 2005-05-12  Miklos Szeredi <miklos@szeredi.hu>
960         * File save in krusader and other editors doesn't work with sshfs,
961         because open() is interrupted by a periodic signal, and open()
962         restarts forever, without any progress.  This could just be fixed
963         in open(), but the problem is more generic: if signals are
964         received more often than the filesystem can get the request to
965         userspace, it will never finish.  This is probably only a
966         theoretical problem, nevertheless I'm removing the possibility to
967         interrupt requests with anything other than SIGKILL, even before
968         being sent to userspace.  Bugreport by Eduard Czimbalmos.
970 2005-05-09  Miklos Szeredi <miklos@szeredi.hu>
972         * libfuse: add "tree_lock" rwlock, that is locked for write in
973         rename, unlink and rmdir, and locked for read in all other
974         operations.  This should fix the rename/release race reported by
975         Valient Gough and others.  The solution is very coarse, a finer
976         grained locking scheme could be implemented, but it would be much
977         more complex.  Let's see whether this is good enough.
979 2005-05-09  Miklos Szeredi <miklos@szeredi.hu>
981         * Released 2.3-pre7
983 2005-05-08  Miklos Szeredi <miklos@szeredi.hu>
985         * Better fix for out of order FORGET messages.  Now the
986         LOOKUP/FORGET messages are balanced exactly (one FORGET can
987         balance many lookups), so the order no longer matters.  This
988         changes the kernel ABI slightly, but the library remains backward
989         compatible.
991 2005-05-06  Miklos Szeredi <miklos@szeredi.hu>
993         * Fix abort for out of order FORGET messages.  Again.  Spotted by
994         Franco Broi again.  Sorry :)
996 2005-04-29  Miklos Szeredi <miklos@szeredi.hu>
998         * Released 2.3-pre6
1000 2005-04-29  Miklos Szeredi <miklos@szeredi.hu>
1002         * Make fusermount work with fuse kernel modules not yet supporting
1003         the "group_id" option (added for the purpose of stricter
1004         permission checking).
1006 2005-04-28  Miklos Szeredi <miklos@szeredi.hu>
1008         * Check for hard-linked directories in lookup.  This could cause
1009         problems in the VFS, which assumes that such objects never exist.
1011         * Make checking of permission for other users more strict.  Now
1012         the same privilege is required for the mount owner as for ptrace
1013         on the process performing the filesystem operation.
1015 2005-04-23  Miklos Szeredi <miklos@szeredi.hu>
1017         * Released 2.3-pre5
1019 2005-04-22  Miklos Szeredi <miklos@szeredi.hu>
1021         * Add -msoft-float to kernel module compile flags for 2.4.X.  This
1022         is needed on certain architectures.  Report from Chris Kirby
1024         * Fix buggy behavior of open(..., O_CREAT|O_EXCL) if interrupted.
1025         Reported by David Shaw
1027         * Remove "allow_root" option from kernel module, and implement
1028         it's functionality in the library
1030         * Fix Oops caused by premature release of fuse_conn.  Clean up
1031         related code, to be more readable
1033         * Sendfile should not use page cache if "direct_io" mount option
1034         is given
1036 2005-04-08  Miklos Szeredi <miklos@szeredi.hu>
1038         * Fix Oops in case of nfs export.  Spotted by David Shaw
1040         * Fix another Oops in case of write over nfs with direct_io turned
1041         on.  Again spotted by David Shaw
1043 2005-04-07  Miklos Szeredi <miklos@szeredi.hu>
1045         * Released 2.3-pre4
1047 2005-04-07  Miklos Szeredi <miklos@szeredi.hu>
1049         * lib: finalized new readdir() interface, which now supersedes the
1050         getdir() method.
1052 2005-04-03  Miklos Szeredi <miklos@szeredi.hu>
1054         * Released 2.3-pre3
1056 2005-04-03  Miklos Szeredi <miklos@szeredi.hu>
1058         * Implement backward compatibility with version 5 kernel ABI
1060 2005-04-01  Miklos Szeredi <miklos@szeredi.hu>
1062         * Released 2.3-pre2
1064 2005-04-01  Miklos Szeredi <miklos@szeredi.hu>
1066         * kernel: fix dirent offset handling
1068         * lib: add readdir and releasedir methods
1070         * lib: use fh field of fuse_file_info in opendir, readdir,
1071         releasedir and fsyncdir methods
1073         * lib: check kernel API version and bail out of it's old.  This
1074         will be properly fixed in the next release
1076 2005-03-31  Miklos Szeredi <miklos@szeredi.hu>
1078         * Released 2.3-pre1
1080 2005-03-31  Miklos Szeredi <miklos@szeredi.hu>
1082         * kernel API: add padding to structures, so 64bit and 32bit
1083         compiler will return the same size
1085         * kernel API: add offset field to fuse_dirent.  This will allow
1086         more sophisticated readdir interface for userspace
1088         * kernel API: change major number to 6
1090         * kernel: fix warnings on 64bit archs
1092         * kernel: in case of API version mismatch, return ECONNREFUSED
1094 2005-03-24  Miklos Szeredi <miklos@szeredi.hu>
1096         * kernel: trivial cleanups
1098 2005-03-21  Miklos Szeredi <miklos@szeredi.hu>
1100         * Add fsyncdir() operation
1102 2005-03-19  Miklos Szeredi <miklos@szeredi.hu>
1104         * kernel: add locking to background list (fixes previous fix)
1106 2005-03-18  Miklos Szeredi <miklos@szeredi.hu>
1108         * kernel: fix bug which could cause leave busy inodes after
1109         unmount, and Oops.
1111 2005-03-08  Miklos Szeredi <miklos@szeredi.hu>
1113         * examples: add -lpthread to link flags to work around valgrind
1114         quirk
1116         * lib: don't exit threads, so cancelation doesn't cause segfault
1118 2005-03-04  Miklos Szeredi <miklos@szeredi.hu>
1120         * kernel: fix nasty bug which could cause an Oops under certain
1121         situations.  Found by Magnus Johansson
1123 2005-02-28  Miklos Szeredi <miklos@szeredi.hu>
1125         * libfuse: added opendir() method.  This can be used in case
1126         permission checking in getdir() is too late.  Thanks to Usarin
1127         Heininga for pointing out this deficiency
1129         * libfuse: added init() and destroy() methods to fuse_operations
1131         * kernel: llseek() method for files and directories made explicit
1133         * kernel: fixed inode leak in NFS export in case of nodeid
1134         wrapping
1136 2005-02-15  Miklos Szeredi <miklos@szeredi.hu>
1138         * libfuse: clean up some unitialized memory found with valgrind
1140         * Add -lpthread to Libs in fuse.pc.  Valgrind seems to need an
1141         explicitly linked libpthread for applications
1143 2005-02-10  Miklos Szeredi <miklos@szeredi.hu>
1145         * fusermount: set umask, otherwise /etc/mtab will have
1146         unpredictable permission.  Spotted by Jindrich Kolorenc
1148         * fusermount: set owner and group of /etc/mtab to original values
1149         on unmount
1151         * libfuse: add 'use_ino' option to help.  Patch by Valient Gough
1153 2005-02-07  Miklos Szeredi <miklos@szeredi.hu>
1155         * Cleaned up directory reading (temporary file is not used)
1157 2005-02-02  Miklos Szeredi <miklos@szeredi.hu>
1159         * Released 2.2
1161 2005-02-02  Miklos Szeredi <miklos@szeredi.hu>
1163         * Fix possible race when operation is interrupted
1165 2005-01-28  Miklos Szeredi <miklos@szeredi.hu>
1167         * Fix compilation on 2.6.7
1169 2005-01-26  Miklos Szeredi <miklos@szeredi.hu>
1171         * Released 2.2-pre6
1173 2005-01-26  Miklos Szeredi <miklos@szeredi.hu>
1175         * Fix bug in link() operation which caused the wrong path to be
1176         passed as the first argument.  Found by Anton Altaparmakov
1178 2005-01-21  Miklos Szeredi <miklos@szeredi.hu>
1180         * LIB: fix double reply in readdir operation
1182         * fusermount: fix uid checking bug.  Patch by Adam Connell
1184         * KERNEL: fix compile on various RedHat patched 2.4 kernels.
1185         Patch by Keshava Gowda
1187 2005-01-20  Miklos Szeredi <miklos@szeredi.hu>
1189         * KERNEL: provide correct llseek semantics for fuse device (fixes
1190         a bug on Progeny 2.4.20 kernel).  Reported by Valient Gough
1192 2005-01-20  Miklos Szeredi <miklos@szeredi.hu>
1194         * Released 2.2-pre5 (matches kernel 2.6.11-rc1-mm2)
1196 2005-01-18  Miklos Szeredi <miklos@szeredi.hu>
1198         * KERNEL ABI: remove GETDIR operation, and add OPENDIR, READDIR
1199         and RELEASEDIR.  This ends the ugly hack of passing a file
1200         descriptor to the kernel, and actually makes the code simpler.
1202 2005-01-17  Miklos Szeredi <miklos@szeredi.hu>
1204         * Released 2.2-pre4
1206 2005-01-17  Miklos Szeredi <miklos@szeredi.hu>
1208         * fusermount: remove capability setting, which was the cause of
1209         problems for some users.  It seems that FS related capabilities
1210         are removed by setfsuid(), so this isn't even needed.
1212 2005-01-15  Miklos Szeredi <miklos@szeredi.hu>
1214         * fix compilation on 2.4 kernels (reported by Valient Gough)
1216         * fix failure to unmount bug (found by David Shaw)
1218         * fusermount: improve parsing of /etc/fuse.conf
1220 2005-01-13  Miklos Szeredi <miklos@szeredi.hu>
1222         * Remove 'mount_max' and 'user_allow_other' module options.  These
1223         are now checked by fusermount, and can be set in /etc/fuse.conf
1225         * KERNEL: change check for fsid == 0 to capable(CAP_DAC_OVERRIDE)
1227 2005-01-11  Miklos Szeredi <miklos@szeredi.hu>
1229         * KERNEL: fix possible inode allocation problem, where
1230         sizeof(struct inode) is not aligned (found by Mike Waychison)
1232         * KERNEL: use new follow_link/put_link methods
1234         * KERNEL: cosmetic fixes
1236 2005-01-10  Miklos Szeredi <miklos@szeredi.hu>
1238         * Released 2.2-pre3
1240 2005-01-10  Miklos Szeredi <miklos@szeredi.hu>
1242         * Add missing code that was accidently left out
1244 2005-01-09  Miklos Szeredi <miklos@szeredi.hu>
1246         * Released 2.2-pre2
1248 2005-01-09  Miklos Szeredi <miklos@szeredi.hu>
1250         * Change "uid" mount option to "user_id" to avoid confusion with a
1251         mount option "uid" commonly used by many filesystems
1253 2005-01-09  Miklos Szeredi <miklos@szeredi.hu>
1255         * Released 2.2-pre1
1257 2005-01-09  Miklos Szeredi <miklos@szeredi.hu>
1259         * If FUSE is configured in the kernel, don't build it by default
1261 2005-01-07  Miklos Szeredi <miklos@szeredi.hu>
1263         * Compile fix by Christian Magnusson
1265 2005-01-05  Miklos Szeredi <miklos@szeredi.hu>
1267         * Fix compilation for 2.6.{0-5} kernels
1269 2005-01-04  Miklos Szeredi <miklos@szeredi.hu>
1271         * KERNEL: if request is interrupted, still keep reference to used
1272         inode(s) and file, so that FORGET and RELEASE are not sent until
1273         userspace finishes the request.
1275         * remove /{sys,proc}/fs/fuse/version, and instead add an INIT
1276         request with the same information, which is more flexible,
1277         simpler, works on embedded systems.
1279 2004-12-16  Miklos Szeredi <miklos@szeredi.hu>
1281         * KERNEL ABI: update interface to make it independent of type
1282         sizes.  This will help on 64 bit architectures which can run
1283         legacy 32 bit applications.
1285         * KERNEL ABI: add "len" field to request headers.  This will allow
1286         sending/receiving requests in multiple chunks.
1288         * KERNEL: handle file type change more intelligently
1290         * LIB: "-o debug" option should disable backgrounding (fix by
1291         Fabien Reygrobellet)
1293 2004-12-13  Miklos Szeredi <miklos@szeredi.hu>
1295         * KERNEL: invalidate dentry/attributes if interrupted request
1296         could leave filesystem in an unknown state.
1298 2004-12-12  Miklos Szeredi <miklos@szeredi.hu>
1300         * KERNEL: lots of cleanups related to avoiding possible deadlocks.
1301         These will cause some regressions, but stability is considered
1302         more important.  If any of these features turns out to be
1303         important, it can be readded with the deadlock problems addressed.
1305         * Make all requests interruptible (only with SIGKILL currently).
1306         This can be used to break any deadlock produced by the userspace
1307         filesystem accessing it's own exported files.  The RELEASE request
1308         is special, because if it's interrupted before sending it to
1309         userspace it is still sent, but the reply is not awaited.
1311         * If request is interrupted before being sent to userspace, and if
1312         it hasn't yet got any side effects, it is always restarted,
1313         regardless of the SA_RESTART flag.  This makes these interruptions
1314         transparent to the process.
1316         * Remove shared-writable mmap support, which was prone to an
1317         out-of-memory deadlock situation
1319         * Remove INVALIDATE userspace initiated request
1321         * Make readpages() synchronous.  Asynchronous requests are
1322         deadlock prone, since they cannot be interrupted.
1324         * Add readv/writev support to fuse device operations
1326         * Remove some printks, which userspace FS can use for a DoS
1327         against syslog
1329         * Remove 'large_read' mount option from 2.6 in kernel, check it in
1330         fusermount instead
1332         * LIB: improve compatibility with a fuse.h header installed in
1333         ${prefix}/include which in turn includes the real header.
1335         * LIB: improve compatibility by defining fuse_main() (which is now
1336         not used), so old configure scripts find it.
1338 2004-12-10  Miklos Szeredi <miklos@szeredi.hu>
1340         * When mounting on a subdirectory of / don't duplicate slashes at
1341         the beggining of path (spotted by David Shaw)
1343 2004-12-09  Miklos Szeredi <miklos@szeredi.hu>
1345         * Fix bug causing garbage in mount options (spotted by David Shaw)
1347 2004-12-07  Miklos Szeredi <miklos@szeredi.hu>
1349         * Add 'writepage' flag to 'fuse_file_info'.
1351         * More comments in fuse.h
1353         * Get rid of double underscores
1355 2004-12-04  Miklos Szeredi <miklos@szeredi.hu>
1357         * Add -D_FILE_OFFSET_BITS=64 to cflags provided by pkg-config
1359         * helper.c: add -ho option, which only displays the options not
1360         the usage header.  This can be used by filesystems which have
1361         their own options.
1363 2004-12-03  Miklos Szeredi <miklos@szeredi.hu>
1365         * Add source compatibility to 2.1 and 1.1 APIs.  To select betwen
1366         versions simply define FUSE_USE_VERSION to 22, 21 or 11 before
1367         including the fuse header
1369         * Add binary compatibility to 2.1 version of library with symbol
1370         versioning
1372 2004-12-03  Miklos Szeredi <miklos@szeredi.hu>
1374         * Released 2.1
1376 2004-12-01  Miklos Szeredi <miklos@szeredi.hu>
1378         * kernel: clean up writing functions
1380         * kernel: no allocation on write in direct_io mode
1382         * move linux/fuse.h to fuse_kernel.h
1384 2004-11-30  Miklos Szeredi <miklos@szeredi.hu>
1386         * kernel: clean up reading functions
1388 2004-11-29  Miklos Szeredi <miklos@szeredi.hu>
1390         * kernel: make readpage() uninterruptible
1392         * kernel: check readonly filesystem flag in fuse_permission
1394         * lib: don't die if version file not found and new style device
1395         exists
1397         * lib: add '-r' option, which is short for '-o ro'
1399         * fusermount: simplify device opening
1401         * kernel: when direct_io is turend on, copy data directly to
1402         destination without itermediate buffer.  More efficient and safer,
1403         since no allocation is done.
1405         * fusermount: fix warning if fuse module is not loaded
1407         * kernel: use /dev/fuse on 2.4 too
1409 2004-11-26  Miklos Szeredi <miklos@szeredi.hu>
1411         * libfuse API change: open, read, write, flush, fsync and release
1412         are passed a 'struct fuse_file_info' pointer containing the open
1413         flags (open and release), and the file handle.  Verion changed to
1414         3.0.
1416 2004-11-23  Miklos Szeredi <miklos@szeredi.hu>
1418         * More cleanups in the kernel
1420         * The 10,229 charater device number has been assigned for FUSE
1422         * Version file checking fix (reported by Christian Magnusson)
1424         * fusermount: opening the fuse device now doesn't need /sys.
1426         * Optimize reading by controlling the maximum readahead based on
1427         the 'max_read' mount option
1429         * fixes for UCLIBC (Christian Magnusson)
1431 2004-11-19  Miklos Szeredi <miklos@szeredi.hu>
1433         * Cleaned up kernel in preparation for merge into mainline:
1435         * Use /sys/fs/fuse/version instead of /proc/fs/fuse/version
1437         * Use real device (/dev/fuse) instead of /proc/fs/fuse/dev
1439         * __user annotations for sparse
1441         * allocate individual pages instead of kmalloc in fuse_readdir,
1442         fuse_read and fuse_write.
1444         * Fix NFS export in case "use_ino" mount option is given
1446         * Make libfuse and fusermount compatible with future versions
1448         * fusermount: properly add mount options to /etc/mtab
1450 2004-11-15  Miklos Szeredi <miklos@szeredi.hu>
1452         * fusermount: do not resolve last component of mountpoint on if it
1453         is '.' or '..'.  This new path resolvation is now done on mount as
1454         well as unmount.  This enables relative paths to work on unmount.
1456         * fusermount: parse common mount options like "ro", "rw", etc...
1458         * Allow module params to be changed through sysfs
1460 2004-11-14  Miklos Szeredi <miklos@szeredi.hu>
1462         * Released 2.1-pre1
1464 2004-11-14  Miklos Szeredi <miklos@szeredi.hu>
1466         * Fix bug in fuse_readpages() causing Oops in certain situations.
1467         Bug found by Vincenzo Ciancia.
1469         * Fix compilation with kernels versions > 2.6.9.
1471 2004-11-11  Miklos Szeredi <miklos@szeredi.hu>
1473         * Check kernel interface version in fusermount to prevent
1474         strangeness in case of mismatch.
1476         * No need to allocate fuse_conn until actual mount happens
1478         * Fix potential race between umount and fuse_invalidate
1480         * Check superblock of proc file in addition to inode number
1482         * Fix race between request_send_noreply() and fuse_dev_release()
1484 2004-11-10  Miklos Szeredi <miklos@szeredi.hu>
1486         * Separate configure for the kernel directory
1488         * Don't allow write to return more than 'count'
1490         * Extend kernel interface for future use
1492 2004-11-09  Miklos Szeredi <miklos@szeredi.hu>
1494         * Fix 'makeconf.sh' to use autoreconf if available
1496 2004-11-08  Miklos Szeredi <miklos@szeredi.hu>
1498         * Add ino argument to 'fuse_dirfil_t'.  NOTE: This breaks source
1499         compatibility with earlier versions.  To compile earier versions
1500         just add '-DFUSE_DIRFIL_COMPAT' compile flag or fix the source.
1501         Do not use the "use_ino" mount flag with filesystems compiled with
1502         FUSE_DIRFIL_COMPAT.
1504         * Add pkg-config support.  To compile a FUSE based filesystem you
1505         can do  "gcc -Wall `pkg-config --cflags --libs fuse` myfs.c -o myfs"
1506         or similar.  Note, that the PKG_CONFIG_PATH environment variable
1507         usually needs to be set to "/usr/local/lib/pkgconfig".
1509         * fuse.h is now installed in ${prefix}/include/fuse/
1511 2004-11-02  Miklos Szeredi <miklos@szeredi.hu>
1513         * Added "use_ino" mount option.  This enables the filesystems to
1514         set the st_ino field on files
1516 2004-11-01  Miklos Szeredi <miklos@szeredi.hu>
1518         * Fix compile problems with ancient (<=2.4.18) kernels (reported
1519         by Jeremy Smith)
1521         * Add "allow_root" mount option.  Patch by Yaroslav Rastrigin
1523         * Clear the 'exited' flag when mail loop is finished
1525 2004-10-28  Miklos Szeredi <miklos@szeredi.hu>
1527         * Make xattr functions work under 2.6 (bug found by Vincenzo
1528         Ciancia)
1530 2004-10-26  Miklos Szeredi <miklos@szeredi.hu>
1532         * Reset request in fuse_flush() (bugreport by David Shaw)
1534 2004-10-21  Miklos Szeredi <miklos@szeredi.hu>
1536         * fuse_main() now does not exit on error, rather it returns an
1537         error code
1539         * Exported __fuse_setup() and __fuse_teardown() functions, which
1540         make it easier to implement a custom event loop.
1542         * Use daemon() call to background the filesystem after mounting.
1543         This function closes the standard input, output and error and
1544         changes the current working directory to "/".
1546 2004-10-14  Miklos Szeredi <miklos@szeredi.hu>
1548         * Released 1.9
1550 2004-10-09  Miklos Szeredi <miklos@szeredi.hu>
1552         * Don't allow fuse_flush() to be interrupted (bug found by David
1553         Shaw)
1555 2004-09-27  Miklos Szeredi <miklos@szeredi.hu>
1557         * Add PID to fuse_context.  Patch by Steven James
1559         * Change file handle type to 'unsigned long' in kernel interface
1561 2004-09-22  Miklos Szeredi <miklos@szeredi.hu>
1563         * A slight API change: fuse_get_context() doesn't need the "fuse"
1564         pointer, but the returned context contains it instead.  The
1565         fuse_get() function is not needed anymore, so it's removed.
1567         * Fix mounting and umounting FUSE filesystem under another FUSE
1568         filesystem by non-root (bug spotted by Valient Gough)
1570 2004-09-21  Miklos Szeredi <miklos@szeredi.hu>
1572         * Fix deadlock in case of memory allocation failure.  Patch by
1573         Christian Magnusson
1575 2004-09-16  Miklos Szeredi <miklos@szeredi.hu>
1577         * Check memory allocation failures in libfuse
1579 2004-09-14  Miklos Szeredi <miklos@szeredi.hu>
1581         * Check temporary file creation failure in do_getdir().  Bug
1582         spotted by Terje Oseberg
1584 2004-09-13  Miklos Szeredi <miklos@szeredi.hu>
1586         * Allow "large_read" option for 2.6 kernels but warn of deprecation
1588         * Make requests non-interruptible so race with FORGET is avoided.
1589         This is only a temporary solution
1591         * Support compiling FUSE kernel module on 2.4.x UML kernels
1593 2004-09-09  Miklos Szeredi <miklos@szeredi.hu>
1595         * Fix bug in case two FORGETs for the same node are executed in
1596         the wrong order.  Bug spotted and endured for months by Franco
1597         Broi, and logfile for solution provided by Terje Oseberg
1599 2004-09-01  Miklos Szeredi <miklos@szeredi.hu>
1601         * Add -D_REENTRANT to the compile flags
1603         * Add documentation of fuse internals by Terje Oseberg
1605 2004-08-16  Miklos Szeredi <miklos@szeredi.hu>
1607         * Change release method to be non-interruptible.  Fixes bug
1608         causing missing release() call when program which has opened files
1609         is killed (reported by Franco Broi and David Shaw)
1611 2004-07-29  Miklos Szeredi <miklos@szeredi.hu>
1613         * Add fuse_invalidate() to library API
1615 2004-07-26  Miklos Szeredi <miklos@szeredi.hu>
1617         * Check permissions in setattr if 'default_permissions' flag is
1618         set.  Bug spotted by Damjan Lango
1620 2004-07-24  Miklos Szeredi <miklos@szeredi.hu>
1622         * 'large_read' mount option removed for 2.6 kernels, since the
1623         default (dynamic read size) is better
1625         * Extend kernel API with file handles.  A file handle is returned
1626         by open, and passed to read, write, flush, fsync and release.
1627         This is currently only used for debug output in the library.
1629         * Security changes:
1631         * Change the current directory to the mountpoint before checking
1632         the permissions and mount filesystem on "."
1634         * By default don't modprobe the fuse module for non-root.  The old
1635         behavior can be restored with the '--enable-auto-modprobe' flag of
1636         ./configure
1638         * By default don't allow shared writable mappings for non-root.
1639         The old behavior can be restored with the 'user_mmap=1' module
1640         parameter
1642 2004-07-23  Miklos Szeredi <miklos@szeredi.hu>
1644         * Clean up mount option passing to fusermount and to fuse_new()
1645         BEWARE: this changes the userspace API slightly, and the command
1646         line usage of programs using fuse_main()
1648 2004-07-20  Miklos Szeredi <miklos@szeredi.hu>
1650         * Optimize reading under 2.6 kernels by issuing multiple page
1651         asynchronous read requests
1653 2004-07-18  Miklos Szeredi <miklos@szeredi.hu>
1655         * Only use redirty_page_for_writepage() for kernels >= 2.6.6
1657 2004-07-16  Miklos Szeredi <miklos@szeredi.hu>
1659         * Separate directory entry and inode attribute validity timer
1661         * New write semaphore to stop page writeback during truncate
1663         * Fsync now waits for all writes to complete before sending the
1664         request
1666         * Optimization: if a page is completely written by
1667         fuse_commit_write(), clear the dirty flag and set the uptodate
1668         flag for that page
1670         * Some memory cleanup at exit
1672 2004-07-13  Miklos Szeredi <miklos@szeredi.hu>
1674         * Add FUSE_HARD_REMOVE flag, and '-i' option to fuse main, which
1675         disable the "hide if open" behavior of unlink/rename.
1677         * If temporary buffer allocation fails in raw read, fall back to a
1678         smaller buffer
1680 2004-07-12  Miklos Szeredi <miklos@szeredi.hu>
1682         * Fix bug in do_open() in libfuse: open count was incremented
1683         after the reply is sent so it could race with unlink/forget and
1684         cause an abort.
1686 2004-07-08  Miklos Szeredi <miklos@szeredi.hu>
1688         * When performing create or remove operation, refresh the parent's
1689         attributes on next revalidate, as i_nlink (and maybe size/time)
1690         could be inacurate.
1692         * Use redirty_page_for_writepage() in fuse_writepage() for skipped
1693         pages (2.6 only)
1695         * Set set_page_dirty address space operation (2.6 only)
1697 2004-07-06  Miklos Szeredi <miklos@szeredi.hu>
1699         * Minor fix in read:  print debug info even if read size is zero
1701 2004-07-04  Miklos Szeredi <miklos@szeredi.hu>
1703         * Fix race between truncate and writepage (fsx-linux now runs
1704         without error)
1706 2004-07-02  Miklos Szeredi <miklos@szeredi.hu>
1708         * Fix kernel hang on mkfifo under 2.4 kernels (spotted and patch
1709         by Mattias Wadman)
1711         * Added option for direct read/write (-r)
1713         * Fix revalidate time setting for newly created inodes
1715         * Remove uid==0 check for '-x' option in fusermount (kernel checks
1716         this)
1718         * fuse_main() only installs handlers for signals (out of INT, HUP,
1719         TERM, PIPE), for which no handler has yet been installed
1721         * Add module option 'user_allow_other' which if set to non-zero
1722         will allow non root user to specify the 'allow_other' mount option
1723         ('-x' option of fusermount)
1725         * Fix deadlock between page writeback completion and truncate
1726         (bug found by Valient Gough with the fsx-linux utility)
1728 2004-07-01  Miklos Szeredi <miklos@szeredi.hu>
1730         * Change passing fuse include dir to 2.6 kernel make system more
1731         robust (fixes compile problems seen on SuSE 9.1 with updated 2.6
1732         kernel)
1734 2004-06-30  Miklos Szeredi <miklos@szeredi.hu>
1736         * Acquire inode->i_sem before open and release methods to prevent
1737         concurrent rename or unlink operations.
1739         * Make __fuse_read_cmd() read only one command.  This allows
1740         multiplexing the fuse file descriptor with other event sources
1741         using select() or poll() (patch by Jeff Harris)
1743         * Export 'exited' flag with __fuse_exited() (patch by Jeff Harris)
1745 2004-06-27  Miklos Szeredi <miklos@szeredi.hu>
1747         * Fix file offset wrap around at 4G when doing large reads
1749 2004-06-24  Miklos Szeredi <miklos@szeredi.hu>
1751         * Fix memory leak in open (Valient Gough)
1753 2004-06-24  Miklos Szeredi <miklos@szeredi.hu>
1755         * Add "close after delete" support to libfuse (patch by Valient
1756         Gough)
1758         * Cancel all worker threads before exit in multithreaded mode
1760 2004-06-23  Miklos Szeredi <miklos@szeredi.hu>
1762         * Fix locking bugs
1764         * Don't send reply to RELEASE
1766         * Work with newer libtool (1.5a)
1768         * Check for st_atim member of struct stat
1770 2004-06-22  Miklos Szeredi <miklos@szeredi.hu>
1772         * No request allocation needed on inode and file release
1774 2004-06-21  Miklos Szeredi <miklos@szeredi.hu>
1776         * Fix possible inode leak in userspace in case of unfinished
1777         lookup/mknod/mkdir/symlink/link operation.
1779 2004-06-20  Miklos Szeredi <miklos@szeredi.hu>
1781         * Fix some races and cleanups in fuse_read_super()
1783 2004-06-19  Miklos Szeredi <miklos@szeredi.hu>
1785         * Requests are allocated at open time
1787 2004-06-03  Miklos Szeredi <miklos@szeredi.hu>
1789         * Build shared library as well as static (using libtool)
1791         * Change FUSE_MINOR_VERSION from 1 to 0.  I know it's illegal but
1792         there has not been a release with the previous minor number, and I
1793         hope nobody is using it for anything.
1795         * Change fuse_main(), so that default behavior is to go into
1796         background if mount is successful.  '-f' and '-d' options disable
1797         backgrounding.  This fixes the "Why does my FUSE daemon hang?"
1798         newbie complaint.
1800         * Cache ENOSYS (function not implemented) errors on *xattr, flush
1801         and fsync
1803         * Don't call getdir method from open() only from first readdir().
1804         Open is sometimes just used to store the current directory
1805         (e.g. find)
1807 2004-05-18  Miklos Szeredi <miklos@szeredi.hu>
1809         * Added flush() call
1811 2004-05-04  Miklos Szeredi <miklos@szeredi.hu>
1813         * Extended attributes support for 2.4 (patch by Cody Pisto)
1815 2004-04-20  Miklos Szeredi <miklos@szeredi.hu>
1817         * Fixed parser with modversions (Mattias Wadman)
1819 2004-04-19  Miklos Szeredi <miklos@szeredi.hu>
1821         * Added mount option parser to 2.4 build
1823 2004-04-13  Miklos Szeredi <miklos@szeredi.hu>
1825         * Replaced binary mount data with text options
1827         * Show FUSE specific mount options in /proc/mounts
1829         * Check in fuse.h whether _FILE_OFFSET_BITS is set to 64
1831 2004-04-09  Miklos Szeredi <miklos@szeredi.hu>
1833         * Check some limits so userspace won't get too big requests
1835 2004-04-05  Miklos Szeredi <miklos@szeredi.hu>
1837         * Kill compile warning
1839         * Upgraded user-mount patch for 2.6.5
1841 2004-04-02  Miklos Szeredi <miklos@szeredi.hu>
1843         * Add detection of user-mode-linux to configure
1845 2004-03-31  Miklos Szeredi <miklos@szeredi.hu>
1847         * fixed zero size case for getxattr and listxattr
1849 2004-03-30  Miklos Szeredi <miklos@szeredi.hu>
1851         * new fusermount flag '-z': lazy unmount, default is not lazy
1853         * Extended attributes operations added (getxattr, setxattr,
1854         listxattr, removexattr)
1856 2004-03-25  Miklos Szeredi <miklos@szeredi.hu>
1858         * If filesystem doesn't define a statfs operation, then an
1859         all-zero default statfs is returned instead of ENOSYS
1861 2004-03-24  Miklos Szeredi <miklos@szeredi.hu>
1863         * Add FS_BINARY_MOUNTDATA filesystem flag for kernels > 2.6.4
1865 2004-03-09  Miklos Szeredi <miklos@szeredi.hu>
1867         * Fix for uClinux (Christian Magnusson)
1869 2004-03-02  Miklos Szeredi <miklos@szeredi.hu>
1871         * fuse_main() adds "-n progname" to the fusermount command line
1873         * More kernel interface changes:
1875         * Lookup/getattr return cache timeout values
1877 2004-02-25  Miklos Szeredi <miklos@szeredi.hu>
1879         * Clean up option parsing in fuse_main()
1881         * Added fuse_get() function which returns the fuse object created
1882         by fuse_main()
1884 2004-02-20  Miklos Szeredi <miklos@szeredi.hu>
1886         * removed old way of mounting (fusermount mountpoint program)
1888         * more kernel interface changes:
1890         * added nanosecond precision to file times
1892         * removed interface version from mount data
1894         * added /proc/fs/fuse/version which contains MAJOR.MINOR
1896 2004-02-19  Miklos Szeredi <miklos@szeredi.hu>
1898         * statfs library API changed to match other methods.  Since this
1899           is not backward compatible FUSE_MAJOR_VERSION is changed to 2
1901         * kernel interface changes follow:
1903         * statfs changed to 64 bits, added 'bavail' field
1905         * add generation number to lookup result
1907         * optimized mknod/mkdir/symlink/link (no separate lookup is
1908         needed)
1910         * rdev size increased to 32 bits for mknod
1912         * kernel interface version changed to 3.1
1914 2004-02-18  Miklos Szeredi <miklos@szeredi.hu>
1916         * user-mount upgraded for 2.6.3 kernel
1918 2004-02-17  Miklos Szeredi <miklos@szeredi.hu>
1920         * Added user-mount.2.6.2-rc3.patch
1922         * Add FS_SAFE flag to fuse filesystem
1924         * fusermount should allow (un)mounting for non-root even if not
1925         suid-root
1927 2004-02-12  Miklos Szeredi <miklos@szeredi.hu>
1929         * Remove MS_PERMISSION mount flag (that means something else now)
1931 2004-02-10  Miklos Szeredi <miklos@szeredi.hu>
1933         * Added check for i_size_read/write functions to configure.in
1934         (patch by Valient Gough)
1936 2004-02-06  Miklos Szeredi <miklos@szeredi.hu>
1938         * Fixed writing >= 2G files
1940         * Check file size on open (with generic_file_open())
1942         * Readpage calls flush_dcache_page() after storing data
1944         * Use i_size_read/write for accessing inode->i_size
1946         * Make loopback mount of a fuse file work
1948 2004-02-04  Miklos Szeredi <miklos@szeredi.hu>
1950         * Released 1.1
1952 2004-01-29  Miklos Szeredi <miklos@szeredi.hu>
1954         * Properly check if the inode exists in fuse_invalidate
1956 2004-01-27  Miklos Szeredi <miklos@szeredi.hu>
1958         * Added -q option for fusermount
1960         * fuse_unmount() now uses -q option of fusermount, so no error is
1961         printed if the cause of the program exit is that the filesystem
1962         has already been unmounted
1964         * Fix i_nlink correctness after rmdir/unlink
1966 2004-01-26  Miklos Szeredi <miklos@szeredi.hu>
1968         * Released 1.1-pre2
1970 2004-01-26  Miklos Szeredi <miklos@szeredi.hu>
1972         * Fix typo (thanks Marcos Dione)
1974         * Compile fixes for 2.4 kernels
1976 2004-01-23  Miklos Szeredi <miklos@szeredi.hu>
1978         * Fix CONFIG_MODVERSIONS compile on 2.6
1980 2004-01-22  Miklos Szeredi <miklos@szeredi.hu>
1982         * Write all pending data before a RELEASE operation
1984         * Suppress 'Bad file descriptor' warning on exit
1986         * Replaced fusermount option '-d xxx' with '-n xxx' so it doesn't
1987         get confused with '-d' of fuse_main() (sorry about this change)
1989         * New fusermount option '-l' which enables big reads.  Big reads
1990         are now disabled by default.
1992         * fuse_main() can accept fusermount arguments after a '--'
1994 2004-01-19  Miklos Szeredi <miklos@szeredi.hu>
1996         * Support for exporting filesystem over NFS (see README.NFS)
1998 2004-01-14  Miklos Szeredi <miklos@szeredi.hu>
2000         * Support non-blocking writepage on 2.6.  This makes FUSE behave
2001         much more nicely in low-memory situations
2003         * Fix 32-bit dev handling in getattr and mknod for 2.6 kernels.
2004         (Note: the mknod method does not yet use 32bit device number)
2006 2004-01-13  Miklos Szeredi <miklos@szeredi.hu>
2008         * Code cleanups
2010 2004-01-07  Miklos Szeredi <miklos@szeredi.hu>
2012         * Released 1.1-pre1
2014 2004-01-06  Miklos Szeredi <miklos@szeredi.hu>
2016         * Integrated 2.6 kernel support patch by Michael Grigoriev
2018         * Improvements and cleanups for 2.6 kernels
2020 2004-01-05  Miklos Szeredi <miklos@szeredi.hu>
2022         * Added -d option to fusermount
2024 2003-12-15  Miklos Szeredi <miklos@szeredi.hu>
2026         * Added major+minor version to library API, and minor version to
2027           kernel API
2029 2003-12-13  David McNab <david@rebirthing.co.nz>
2031         * Implemented fsync support in examples/example.py
2033         * Implemented 'fsync' and 'statfs' methods in python
2034           interface
2036 2003-12-12  Miklos Szeredi <miklos@szeredi.hu>
2038         * Make it compile on 2.4.19.
2040         * Add fsync operation (write file failed on xemacs & vi)
2042 2003-12-12  David McNab <david@rebirthing.co.nz>
2044         * Added distutils support to the python module, as per standard
2045           python development practice
2047 2003-12-11  Miklos Szeredi <miklos@szeredi.hu>
2049         * Add file locking for mount/unmount (based on patch by Valient
2050         Gough)
2052 2003-12-11  David McNab <david@rebirthing.co.nz>
2054         * Python filesystem - was broken with python2.3, now fixed:
2055            - changed PyTuple_* calls to PySequence_*, because os.lstat
2056              is no longer returning a pure tuple
2057            - changed PyInt_Check() calls to also call PyLong_Check,
2058              to cover for cases (eg os.lstat) where longs are returned
2059            - Added support for file 'release' handling, which IMO is
2060              essential since this signals to a FS that writes to a file
2061              are complete (and therefore the file can now be disposed of
2062              meaningfully at the python filesystem's discretion)
2063            - Added '__init__' handler to base Fuse class, which allows
2064              your Python class to know the mountpoint and mount args,
2065              as attributes myfs.mountpoint, myfs.optlist, myfs.optdict
2067         * General:
2068            - added 'mount.fuse' script (in util/ dir), which is meant to be
2069              symlinked from /sbin, and which allows FUSE filesystems to
2070              be mounted with the 'mount' command, and listed in fstab;
2071              also, mount arguments get passed to your filesystem
2074 2003-11-04  Miklos Szeredi <miklos@szeredi.hu>
2076         * Fix kernel version detection (again).  Bugreport by Peter Levart
2078 2003-11-03  Miklos Szeredi <miklos@szeredi.hu>
2080         * Applied read combining patch by Michael Grigoriev (tested by
2081         Valient Gough and Vincent Wagelaar)
2083 2003-10-22  Miklos Szeredi <miklos@szeredi.hu>
2085         * Mtab handling fix in fusermount by "Valient Gough" (SF patch
2086         #766443)
2088 2003-10-13  Miklos Szeredi <miklos@szeredi.hu>
2090         * Error code fixes in kernel module
2092 2003-10-04  Miklos Szeredi <miklos@szeredi.hu>
2094         * kernel version detection fix
2096         * fusermount now uses "lazy" umount option
2098         * fusermount can use modprobe with module-init-tools
2100 2003-09-08  Miklos Szeredi <miklos@szeredi.hu>
2102         * Integrated caching patch by Michael Grigoriev
2104         * Added "Filesystems" file with descriptions of projects using
2105         FUSE
2107         * Added patch by Michael Grigoriev to allow compliation of FUSE
2108         kernel module for 2.6 kernels
2110 2003-06-02  Miklos Szeredi <miklos@szeredi.hu>
2112         * And another spec-file fix by Achim Settelmeier
2114 2003-05-26  Miklos Szeredi <miklos@szeredi.hu>
2116         * Spec-file fix by Achim Settelmeier
2118 2003-03-10  Miklos Szeredi <miklos@szeredi.hu>
2120         * Fix umount oops (found by Samuli Kärkkäinen)
2122 2003-03-05  Miklos Szeredi <miklos@szeredi.hu>
2124         * Merge of fuse_redhat.spec and fuse.spec by Achim Settelmeier
2126 2003-03-04  Miklos Szeredi <miklos@szeredi.hu>
2128         * Updated fuse.spec file (Achim Settelmeier)
2130 2003-02-19  Miklos Szeredi <miklos@szeredi.hu>
2132         * Version 1.0 released
2134 2003-02-12  Miklos Szeredi <miklos@szeredi.hu>
2136         * SuSE compilation fix by Juan-Mariano de Goyeneche
2138 2002-12-10  Miklos Szeredi <miklos@szeredi.hu>
2140         * The release() VFS call is now exported to the FUSE interface
2142 2002-12-05  Miklos Szeredi <miklos@szeredi.hu>
2144         * 64 bit file offset fixes in the fuse kernel module
2146         * Added function 'fuse_exit()' which can be used to exit the main
2147         loop
2149 2002-12-03  Miklos Szeredi <miklos@szeredi.hu>
2151         * Added _FILE_OFFSET_BITS=64 define to fuse.h.  Note, that this is
2152         an incompatible interface change.
2154 2002-10-28  Miklos Szeredi <miklos@szeredi.hu>
2156         * Portablility fix (bug reported by C. Chris Erway)
2158 2002-10-25  Miklos Szeredi <miklos@szeredi.hu>
2160         * Use Mark Glines' fd passing method for default operation instead
2161         of old reexec
2163 2002-10-22  Miklos Szeredi <miklos@szeredi.hu>
2165         * fix "Stale NFS file handle" bug caused by changes in 2.4.19
2167 2002-10-22  Miklos Szeredi <miklos@szeredi.hu>
2169         * fix incompatiblity with Red Hat kernels, with help from Nathan
2170         Thompson-Amato.
2172 2002-04-18  Mark Glines <mark@glines.org>
2174         * added an alternative to fuse_mount(), called
2175       fuse_mount_ioslave(), which does not need to reexec the
2176       FUSE program.
2177         * added a small helper util needed by fuse_mount_ioslave().
2179 2002-03-16  Mark Glines <mark@glines.org>
2181         * use struct fuse_statfs everywhere possible to avoid problems
2182       with the headerfiles changing struct statfs member sizes
2184 2002-03-01  Miklos Szeredi <miklos@szeredi.hu>
2186         * Another RPM spec file for RedHat >= 7 by Ian Pilcher
2188 2002-01-14  Miklos Szeredi <miklos@szeredi.hu>
2190         * RPM support by Achim Settelmeier
2192 2002-01-09  Miklos Szeredi <miklos@szeredi.hu>
2194         * Version 0.95 released
2196 2002-01-09  Miklos Szeredi <miklos@szeredi.hu>
2198         * Revaidate all path components not just the last, this means a
2199         very small performance penalty for being more up-to-date.
2201 2002-01-08  Miklos Szeredi <miklos@szeredi.hu>
2203         * Update and fix python interface
2205 2002-01-07  Mark Glines <mark@glines.org>
2207         * Added statfs() support to kernel, lib, examples, and perl!
2209 2001-12-26  Miklos Szeredi <miklos@szeredi.hu>
2211         * Better cross compilation support
2213         * Ported to Compaq IPAQ
2215 2001-12-20  Miklos Szeredi <miklos@szeredi.hu>
2217         * Added function fuse_get_context() to library API (inspired by
2218         patch from Matt Ryan)
2220         * Added flags to fusermount and to kernel interface to control
2221         permission checking
2223         * Integrated fuse_set_operations() into fuse_new()
2225 2001-12-08  Miklos Szeredi <miklos@szeredi.hu>
2227         * Applied header protection + extern "C" patch by Roland
2228         Bauerschmidt
2230 2001-12-02  Miklos Szeredi <miklos@szeredi.hu>
2232         * Added perl bindings by Mark Glines
2234 2001-11-21  Miklos Szeredi <miklos@szeredi.hu>
2236         * Cleaned up way of mounting simple filesystems.
2238         * fuse_main() helper function added
2240 2001-11-18  Miklos Szeredi <miklos@szeredi.hu>
2242         * Optimized read/write operations, so that minimal copying of data
2243         is done
2245 2001-11-14  Miklos Szeredi <miklos@szeredi.hu>
2247         * Python bindings by Jeff Epler added
2249 2001-11-13  Miklos Szeredi <miklos@szeredi.hu>
2251         * Fixed vfsmount reference leak in fuse_follow_link
2253         * FS blocksize is set to PAGE_CACHE_SIZE, blksize attribute from
2254         userspace is ignored
2256 2001-11-09  Miklos Szeredi <miklos@szeredi.hu>
2258         * Started ChangeLog