blob: 7cd502365332023d88c367d5d616fef6ede415b7 [file] [log] [blame]
Miklos Szeredieafdf422006-09-22 19:30:17 +000012006-09-22 Miklos Szeredi <miklos@szeredi.hu>
2
3 * Fix compatibility bugs in low level interface. Reported by
4 Ricardo Correia
5
6 * Add workaround for ARM caching bug
7
Miklos Szeredic3b76812006-09-16 08:52:09 +000082006-09-16 Miklos Szeredi <miklos@szeredi.hu>
9
10 * Rename new utimes() method to more logical utimens()
11
122006-09-14 Miklos Szeredi <miklos@szeredi.hu>
13
14 * Fuse tried to unlink already unlinked hidden files. Bug
15 reported by Milan Svoboda
16
Miklos Szeredi0c59ebf2006-09-10 20:53:36 +0000172006-09-10 Miklos Szeredi <miklos@szeredi.hu>
18
19 * Released 2.6.0-rc1
20
212006-09-10 Miklos Szeredi <miklos@szeredi.hu>
22
23 * kernel: Fix unlock on close for kernels < 2.6.18
24
25 * Add ulockmgr library & server. This can be used for handling
26 file locking requests either directly from libfuse or over a
27 network, etc. This first version is not optimized and the number
28 of file descriptors it uses may get out of hand
29
Miklos Szeredi288ed4e2006-09-07 06:02:44 +0000302006-09-07 Miklos Szeredi <miklos@szeredi.hu>
31
32 * lib: Add interrupt support to high level library, which may be
33 enabled with the 'intr' mount option.
34
35 * When an operation is interrupted the thread handling that
36 operation will receive SIGUSR1 (or other signal specified with the
37 'intr_signal=N' option). The library installs a no-op signal
38 handler for this signal, unless there's already a handler
39 installed.
40
41 * The filesystem may query interrupt status (regardless of 'intr')
42 with the fuse_interrupted() function.
43
Miklos Szeredid8588412006-09-07 06:08:56 +000044 * mount.fuse: initialize $HOME if not set. Report from Sven Goldt
45
Miklos Szeredi38f152c2006-09-03 18:28:52 +0000462006-09-03 Miklos Szeredi <miklos@szeredi.hu>
47
48 * lib: Multithreaded loop now allows unlimited number of threads.
49 This is needed for locking operations which may block
50 indefinitely. Also the kernel now doesn't limit the number of
51 outstanding requests so the library shouldn't do so either.
52
Miklos Szeredifa440772006-09-02 09:51:08 +0000532006-09-01 Miklos Szeredi <miklos@szeredi.hu>
54
55 * Fix recursive lock bug in interrupt handling
56
57 * Add utimes() method to highlevel interface, which supports
58 setting times with nanosecond resolution
59
Miklos Szeredi63d3c402006-08-18 16:38:08 +0000602006-08-18 Miklos Szeredi <miklos@szeredi.hu>
61
62 * kernel: fix page leak if fuse_readpages() failed in it's
63 initialization. Bug found and original patch from Alexander
64 Zarochentsev
65
Miklos Szeredi3ded1a32006-08-18 18:43:50 +000066 * For linux kernels >=2.6.18 (2.6.19 if using the fuse module from
67 the kernel tree) the statfs method will receive the path within
Miklos Szeredid2bda142006-08-19 09:26:16 +000068 the filesystem on which the stat(v)fs syscall was called
Miklos Szeredi3ded1a32006-08-18 18:43:50 +000069
Miklos Szeredi543087d2006-08-18 19:26:23 +000070 * fusermount: try to modprobe fuse module if invoked by root and
71 unable to open device. This is needed with udev, since the device
72 node will be created only when the module is inserted, hence
73 module autoloading won't work. Reported by Szakacsits Szabolcs
74
Miklos Szeredi9a5c11d2006-07-30 17:33:40 +0000752006-07-30 Miklos Szeredi <miklos@szeredi.hu>
76
77 * fusermount: if selinux is active, restore the original file's
78 security context in unmount_rename(). Redhat bugzilla id 188561.
79 Patch from Yves Perrenoud
80
81 * Add POSIX file locking operation to high level library
82
Miklos Szerediad519562006-07-31 11:07:40 +000083 * Initialize context for unlink of hidden files on umount. Bug
84 reported by Tim Stoakes
85
Miklos Szeredi9a5c11d2006-07-30 17:33:40 +0000862006-07-14 Miklos Szeredi <miklos@szeredi.hu>
87
88 * Multiple release() calls can race with each other, resulting in
89 the hidden file being deleted before the last release finishes.
90 Bug found and patch tested by Mark Huijgen
91
Miklos Szeredi3b0e4fa2006-07-14 10:13:16 +0000922006-07-05 Miklos Szeredi <miklos@szeredi.hu>
93
Miklos Szeredi9a5c11d2006-07-30 17:33:40 +000094 * fusermount: if /dev/fuse doesn't exist, suggest modprobing fuse;
95 this makes sense on systems using udev. Reported by Szakacsits
96 Szabolcs
Miklos Szeredi3b0e4fa2006-07-14 10:13:16 +000097
Miklos Szeredi91762cd2006-06-29 14:38:35 +0000982006-06-29 Miklos Szeredi <miklos@szeredi.hu>
99
100 * Released 2.6.0-pre3
101
1022006-06-29 Miklos Szeredi <miklos@szeredi.hu>
103
104 * Support in kernel module for file locking and interruption. The
105 same functionality is available in official kernels >= 2.6.18
106
Miklos Szeredib052a1a2006-06-28 14:51:20 +00001072006-06-28 Miklos Szeredi <miklos@szeredi.hu>
108
109 * Add POSIX file locking support
110
111 * Add request interruption
112
Miklos Szeredi55a84102006-06-06 10:16:38 +00001132006-06-06 Miklos Szeredi <miklos@szeredi.hu>
114
115 * Add missing pthread_rwlock_destroy(). Patch from Remy Blank
116
Miklos Szeredi9dedb702006-06-06 09:48:30 +00001172006-06-05 Remy Blank <remy.blank@pobox.com>
118
119 * lib: canonicalize mount point in fuse_helper_opt_proc() so that
120 unmounting succeeds even if mount point was relative.
121
Csaba Henkd021ce42006-06-03 23:04:18 +00001222006-06-04 Csaba Henk <csaba.henk@creo.hu>
123
124 * lib: fix emergency umount in helper.c when malloc fails.
125 (The way it was done would end up in a segfault.)
126
Csaba Henk4f5c7b42006-06-01 14:19:17 +00001272006-06-01 Csaba Henk <csaba.henk@creo.hu>
128
129 * lib: adjust threading related compiler flags.
130 Switch to "-pthread" from "-lpthread" as that's the preferred
131 one on several platforms. Consulted with Terrence Cole and
132 Miklos Szeredi
Miklos Szeredi06908f42006-05-16 14:39:47 +0000133
Miklos Szeredi9d3b7da2006-05-08 12:35:04 +00001342006-05-08 Miklos Szeredi <miklos@szeredi.hu>
135
136 * lib: search fusermount in installation directory (bindir) as
137 well as in PATH.
138
Miklos Szeredi2512aaa2006-05-03 14:54:59 +00001392006-05-03 Miklos Szeredi <miklos@szeredi.hu>
140
141 * lib: fix compilation if CLOCK_MONOTONIC is not defined.
142 Reported by Christian Magnusson
143
Csaba Henk2efe48f2006-04-22 22:46:52 +00001442006-04-23 Csaba Henk <csaba.henk@creo.hu>
145
146 * lib: make FreeBSD mount routine recognize if kernel features
147 backgrounded init and if it does, run the mount util in foreground
148 (similarly to Linux)
149
Miklos Szeredi5fe07d62006-04-21 14:09:28 +00001502006-04-21 Miklos Szeredi <miklos@szeredi.hu>
151
152 * kernel: fix fput deadlock fix, the lockless solution could lead
153 to "VFS: busy inodes after umount..."
154
155 * kernel: fix race between checking and setting file->private_data
156 for the device. Found by Al Viro
157
1582006-04-11 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi7a2814c2006-04-12 10:41:50 +0000159
160 * kernel: remove request pool, instead allocate requests on
161 demand. Account the number of background requests, and if they go
162 over a limit, block the allocation of new requests.
163
164 * kernel: fix deadlock if backgrounded request holds the last
165 reference to the super block
166
167 * kernel: don't use fuse_reset_request() during direct I/O
168
Csaba Henkbaa49d22006-04-06 00:12:44 +00001692006-04-06 Csaba Henk <csaba.henk@creo.hu>
170
171 * lib: Let FreeBSD mount option parsing routine recognize "no"
172 prefixes for FUSE specific options as well
173
Miklos Szeredid0a777a2006-04-05 07:18:00 +00001742006-04-01 Miklos Szeredi <miklos@szeredi.hu>
175
176 * lib: Add missing rwlock initialization. Patch by Ryan Bradetich
177
Miklos Szeredi6f385412006-03-17 15:05:40 +00001782006-03-17 Miklos Szeredi <miklos@szeredi.hu>
179
180 * API changes:
181
182 * fuse_main(), fuse_setup() and fuse_new() have an additionl
183 user_data parameter
184
185 * fuse_mount() returns a 'struct fuse_chan' pointer instead of a
186 file descriptor
187
188 * fuse_unmount() receives a 'struct fuse_chan' pointer. It
189 destroys the given channel
190
191 * fuse_teardown() no longer has a file descriptor parameter
192
193 * new exported functions: fuse_session_remove_chan(),
194 fuse_get_session(), fuse_daemonize()
195
Miklos Szeredi8d975f62006-03-17 15:56:05 +0000196 * fuse_chan_recv() may now return a new channel which will be used
197 to send the reply
198
Miklos Szeredif51e43f2006-03-16 14:19:25 +00001992006-03-16 Miklos Szeredi <miklos@szeredi.hu>
200
Miklos Szeredi9db31dc2006-03-16 14:43:28 +0000201 * Released 2.6.0-pre2
202
2032006-03-16 Miklos Szeredi <miklos@szeredi.hu>
204
Miklos Szeredif51e43f2006-03-16 14:19:25 +0000205 * Don't unmount if already unmounted. This fixes a problem seen
206 in the following situation: Lazy unmount a busy filesystem; Mount
207 a new one in top; When the first finally unmounts, the second also
208 unmounts. Reported by Franco Broi
209
Miklos Szeredi2c1381f2006-03-15 20:34:10 +00002102006-03-15 Miklos Szeredi <miklos@szeredi.hu>
211
212 * lowlevel lib: use indirect function calls instead of a
213 switch/case construct. Besides increased efficiency it helps
214 maintainability & readability too. Patch from Florin Malita
215
Miklos Szeredi67d26d42006-03-13 17:39:56 +00002162006-03-13 Miklos Szeredi <miklos@szeredi.hu>
217
218 * kernel: replace global spinlock with a per-connection spinlock
219
Miklos Szeredi87c77932006-03-10 10:18:20 +00002202006-03-10 Miklos Szeredi <miklos@szeredi.hu>
221
222 * Fix source compatibility breakage for fuse_unmount(). Report
223 from Yura Pakhuchiy
224
Miklos Szeredi9caf0fe2006-03-02 19:55:56 +00002252006-03-02 Miklos Szeredi <miklos@szeredi.hu>
226
227 * Fix O_ASYNC handling in fuse_dev_release(). From Jeff Dike
228
Miklos Szeredi5d9ce362006-03-01 12:10:13 +00002292006-03-01 Miklos Szeredi <miklos@szeredi.hu>
230
231 * Add O_ASYNC and O_NONBLOCK support to FUSE device. Patch by
232 Jeff Dike
233
234 * Renamed fuse_chan_receive() to fuse_chan_recv() and changed
235 interface to return -errno in case of error.
236
Csaba Henkee588c02006-03-01 09:40:35 +00002372006-03-01 Csaba Henk <csaba.henk@creo.hu>
238
239 * libfuse: pass device file descriptor to fuse_unmount(), rewrite
240 FreeBSD implementation so that it uses libc (sysctl backed) instead
241 of an embdedded script (kmem backed). Adjust the control flow of
242 hello_ll so that device doesn't get closed before unmount attempt.
243
Miklos Szerediaa8258e2006-02-25 14:42:03 +00002442006-02-25 Miklos Szeredi <miklos@szeredi.hu>
245
246 * Lowlevel lib: return all-zero statvfs data if filesystem doesn't
247 implement method. This is needed on FreeBSD, and nicer on Linux
248 too. Highlevel lib already did this. Reported by Csaba Henk
249
250 * Fix negative entry handling. There was a bug, that negative
251 lookups with timeouts (nodeid == 0) returned -EIO.
252
2532006-02-23 Miklos Szeredi <miklos@szeredi.hu>
254
255 * Fix race between RELEASE and UNLINK, which might leave
256 .fuse_hidden* files around
257
Miklos Szeredi6bab4802006-02-21 18:31:29 +00002582006-02-21 Miklos Szeredi <miklos@szeredi.hu>
259
260 * fusexmp_fh: implement flush() method and call close() on the
261 open file descriptor. This is needed if used on an NFS
262 filesystem, which buffers data until file is closed. Franco Broi
263 spotted the situation when 'cp -p' failed to set the modification
264 time because of this.
265
Miklos Szeredie109e282006-02-20 11:06:20 +00002662006-02-20 Miklos Szeredi <miklos@szeredi.hu>
267
268 * Released 2.6.0-pre1
269
Miklos Szeredib67f2162006-02-20 10:55:33 +00002702006-02-19 Miklos Szeredi <miklos@szeredi.hu>
271
272 * libfuse: fix use-after-free bug in interruptred reply_entry().
273 Patch from John Muir
274
275 * libfuse: fix wrong symbol versioning for fuse_mount. Debian bug
276 ID: 352631. Found by Stéphane Rosi
277
Miklos Szeredi1bf64f42006-02-17 15:49:25 +00002782006-02-17 Miklos Szeredi <miklos@szeredi.hu>
279
280 * Lowlevel lib: Unify fuse_dirent_size() and fuse_add_dirent()
281 into a single function fuse_add_direntry(). This cleans up the
282 interface and makes it possible to do stacking.
283
Miklos Szeredi99ac9c02006-02-16 10:08:32 +00002842006-02-16 Miklos Szeredi <miklos@szeredi.hu>
285
286 * Fix rare race betweeen abort and release caused by failed iget()
287 in fuse_create_open().
288
Miklos Szeredi6e806e92006-02-16 16:59:39 +0000289 * Add 'ac_attr_timeout' option e.g. for filesystems which do their
290 own attribute caching.
291
Miklos Szeredid65cdfe2006-02-15 14:25:17 +00002922006-02-15 Miklos Szeredi <miklos@szeredi.hu>
293
294 * Work around FreeBSD runtime linker "feature" which binds an old
295 version of a symbol to internal references if the symbol has more
296 than one version. This resulted in infinite recursion in
297 fuse_lowlevel_new_compat25().
298
Csaba Henkdcce3e52006-02-10 06:22:15 +00002992006-02-10 Csaba Henk <csaba.henk@creo.hu>
300
301 * Refine clock_gettime() querying so that linker options
302 shall be set as it's appropriate for the target platform.
303
Miklos Szeredi390ae312006-02-10 16:44:34 +00003042006-02-09 Miklos Szeredi <miklos@szeredi.hu>
305
306 * Fix udev rule syntax. Reported by Nix
307
Miklos Szeredieb643582006-02-08 10:54:02 +00003082006-02-08 Miklos Szeredi <miklos@szeredi.hu>
309
310 * In some cases udev rule seems to be ineffective when installed
311 as 40-fuse.rules but work as 60-fuse.rules. Reported by John Hunt
312
Miklos Szeredi357529c2006-02-03 09:20:31 +00003132006-02-03 Miklos Szeredi <miklos@szeredi.hu>
314
315 * Fix compilation when build directory is different from source
316 directory. Reported by Frédéric L. W. Meunier
317
Miklos Szeredice28c7e2006-02-02 14:59:05 +00003182006-02-02 Miklos Szeredi <miklos@szeredi.hu>
319
320 * Fix even bigger bug introduced in fix for request_end() on
321 2006-01-14. Reported by Gal Rosen
322
Miklos Szeredi320abe42006-01-30 18:14:51 +00003232006-01-30 Miklos Szeredi <miklos@szeredi.hu>
324
325 * highlevel-lib: add 'auto_cache' option. This caches file data
326 based on modification time and size
327
Miklos Szeredi065f2222006-01-20 15:15:21 +00003282006-01-20 Miklos Szeredi <miklos@szeredi.hu>
329
Miklos Szeredid66b7282006-02-02 15:15:21 +0000330 * Sanitize storage type and help message in mount_bsd.c. Patch
331 from Csaba Henk
332
Miklos Szeredi065f2222006-01-20 15:15:21 +0000333 * fuse_opt: add new helper constants FUSE_OPT_KEY_KEEP and
334 FUSE_OPT_KEY_DISCARD
335
336 * Add options 'max_readahead', 'sync_read' and 'async_read'
337
338 * Kernel ABI version 7.6:
339
340 * Negotiate the 'max_readahead' value and 'async_read' flags with
341 userspace in the INIT method
342
343 * Add connection info to ->init() methods to both lowlevel and
344 highlevel API
345
346 * Fall back to synchronous read() behavior if either library or
347 userspace filesystem is using the old interface version. This is
348 needed so non-updated filesystems won't be confused by the
349 different read() behavior
350
3512006-01-19 Miklos Szeredi <miklos@szeredi.hu>
352
353 * lib: if "fsname=" option was given, pass it to fusermount
354
355 * fuse_opt: add new fuse_opt_insert_arg() function, which is
356 needed by filesystems to implement some argument manipulations
357 correctly
358
359 * fuse_opt: fix memory leak in handling "--" option
360
3612006-01-18 Miklos Szeredi <miklos@szeredi.hu>
362
363 * kernel: fix detection of case when fuse is not configured into
364 the kernel either as module or built-in
365
366 * fuse_opt.h: fix incompatibility with C++ compilers by renaming
367 'template' structure member to 'templ'. Reported by Takashi Iwai
368
369 * fuse.h: fix compatibility bugs. Patch by Yura Pakhuchiy
370
371 * kernel: support version 2.6.16 (i_sem -> i_mutex)
372
Miklos Szeredi15af1b82006-01-16 17:52:24 +00003732006-01-16 Miklos Szeredi <miklos@szeredi.hu>
374
375 * Added (again) asynchronous readpages support
376
377 * Each connection now shows up under /sys/fs/fuse/connections
378
379 * Connection attributes exported to sysfs: 'waiting' number of
380 waiting requests; 'abort' abort the connection
381
382 * Connection may be aborted through either the sysfs interface or
383 with 'umount -f mountpoint'
384
Miklos Szeredi9db5faa2006-01-14 14:47:21 +00003852006-01-14 Miklos Szeredi <miklos@szeredi.hu>
386
Miklos Szeredi75bb0de2006-01-14 18:38:54 +0000387 * Released 2.5.0
388
3892006-01-14 Miklos Szeredi <miklos@szeredi.hu>
390
Miklos Szeredi9db5faa2006-01-14 14:47:21 +0000391 * kernel: fix a couple of bugs
392
Miklos Szeredi68183ca2006-01-27 11:16:11 +0000393 * Order of request_end() and fuse_copy_finish() was wrong.
Miklos Szeredie0451092006-01-27 11:19:51 +0000394 Posthumous note: Franco Broi managed to exploit this, though it
Miklos Szeredi68183ca2006-01-27 11:16:11 +0000395 seemed quite impossible
Miklos Szeredi9db5faa2006-01-14 14:47:21 +0000396
397 * request_end() used request pointer after decrementing refcount
398
399 * Clearing ->connected or ->mounted connection flags could race
400 with setting other bitfields not protected with a lock
Miklos Szeredi15af1b82006-01-16 17:52:24 +0000401
Miklos Szeredia9820342006-01-10 10:54:11 +00004022006-01-10 Miklos Szeredi <miklos@szeredi.hu>
403
404 * kernel: add necessary compile flags for 2.4.X/x86_64.
405 Report from Sean Ziegeler
406
Miklos Szeredi35676b02006-01-09 10:13:28 +00004072006-01-09 Miklos Szeredi <miklos@szeredi.hu>
408
Miklos Szeredie07b1a22006-01-09 14:46:10 +0000409 * Released 2.5.0-pre2
410
4112006-01-09 Miklos Szeredi <miklos@szeredi.hu>
412
Miklos Szeredi35676b02006-01-09 10:13:28 +0000413 * Applied patch from Csaba Henk, to update mount_bsd to new
414 fuse_mount() semantics
415
Miklos Szeredib32c79b2006-01-09 11:14:29 +0000416 * Ignore auto,noauto,... options in mount.fuse. Reported by Frank
417 Steiner and Don Taber
418
Miklos Szeredicb075c82006-01-09 11:33:04 +0000419 * fusermount: add 'dirsync' mount option
420
Miklos Szerediad005972006-01-07 10:14:34 +00004212006-01-07 Miklos Szeredi <miklos@szeredi.hu>
422
423 * Improved help reporting and added version reporting to library
424
Miklos Szeredi0af762a2006-01-06 09:47:54 +00004252006-01-06 Miklos Szeredi <miklos@szeredi.hu>
426
427 * Change working directory to "/" even if running in the
428 foreground. Patch from Jonathan Brandmeyer
429
Miklos Szeredi95da8602006-01-06 18:29:40 +0000430 * Changed lots of functions to use 'struct fuse_args' instead of
431 separate argc and argv
432
433 * Added fuse_parse_cmdline(), fuse_set_signal_handlers() and
434 fuse_remove_signal_handlers() functions, so that it's now pretty
435 easy to get all the functionality of fuse_main() with a filesystem
436 using the lowlevel API.
437
Miklos Szeredib8638182006-01-02 12:52:24 +00004382006-01-02 Miklos Szeredi <miklos@szeredi.hu>
439
Miklos Szeredif1941472006-01-02 16:27:48 +0000440 * mount.fuse: the 'user' option should be ignored. Report and
441 solution from Mattd.
442
443 * mount.fuse: export PATH in the right place. Report and patch
444 from Hannes Schweizer
Miklos Szeredib8638182006-01-02 12:52:24 +0000445
Miklos Szeredi73f41392005-12-16 11:12:16 +00004462005-12-16 Miklos Szeredi <miklos@szeredi.hu>
447
448 * Clean up the option parsing interface slightly, by creating an
449 "argument list" structure, that contains the argument vector and
450 count
451
Miklos Szeredi4e829092005-12-15 16:13:49 +00004522005-12-15 Miklos Szeredi <miklos@szeredi.hu>
453
454 * fusermount: check if /mnt/mtab is a symlink and don't modify it
455 in that case
456
Miklos Szeredi154ffe22005-12-15 16:41:20 +0000457 * kernel: simplify request size limiting. INIT only contains
458 maximum write size, maximum path component size remains fixed at
459 1024 bytes, and maximum xattr size depends on read buffer.
460
Miklos Szeredie248e4b2005-12-14 16:18:32 +00004612005-12-14 Miklos Szeredi <miklos@szeredi.hu>
462
463 * Fix readdir() failure on x86_64, of 32bit programs compiled
464 without largefile support. Bug report and help from Anthony
465 Kolasny
466
Miklos Szeredi64709572005-12-14 22:16:28 +0000467 * If lookup returns invalid mode, return -EIO instead of creating
Miklos Szeredicaa09312005-12-14 23:25:00 +0000468 a regular file
469
470 * Add current output argument vector to option processing
471 function
Miklos Szeredi64709572005-12-14 22:16:28 +0000472
Miklos Szeredi76fc3de2005-12-12 09:34:45 +00004732005-12-12 Miklos Szeredi <miklos@szeredi.hu>
474
475 * Fix stale code in ifdef FreeBSD. Patch from Csaba Henk
476
Miklos Szeredi659743b2005-12-09 17:41:42 +00004772005-12-09 Miklos Szeredi <miklos@szeredi.hu>
478
Miklos Szeredi3b534a42005-12-09 20:09:42 +0000479 * Released 2.5.0-pre1
480
4812005-12-09 Miklos Szeredi <miklos@szeredi.hu>
482
Miklos Szeredi659743b2005-12-09 17:41:42 +0000483 * libfuse: added option parsing interface, defined in
484 <fuse_opt.h>.
485
Miklos Szeredic53cddd2005-12-07 12:57:59 +00004862005-12-07 Miklos Szeredi <miklos@szeredi.hu>
487
488 * Return EIO for file operations (read, write, fsync, flush) on
489 open files whose inode has become "bad". Inodes will be marked
490 "bad" if their type changes. Bug report by Csaba Henk
491
Miklos Szeredi044da2e2005-12-06 17:59:55 +00004922005-12-06 Miklos Szeredi <miklos@szeredi.hu>
493
494 * Use bigger request buffer size. write() did not work on archs
495 with > 4k page size, Bug report by Mark Haney
496
497 * ABI version 7.5:
498
499 * Extend INIT reply with data size limits
500
Miklos Szeredifa829b52005-12-02 11:05:41 +00005012005-12-02 Miklos Szeredi <miklos@szeredi.hu>
502
503 * Fix memory leak in fuse_read_cmd()/fuse_process_cmd(). Bug
504 reported by Vincenzo Ciancia
505
506 * Handle exit-by-umount in fuse_read_cmd()
507
Miklos Szeredi3cc8a262005-11-29 11:04:27 +00005082005-11-29 Miklos Szeredi <miklos@szeredi.hu>
509
510 * Check if '-msoft-float' option is supported by compiler when
511 configuring for a 2.4.x kernel. Bug report by Mark Haney
512
Miklos Szeredi40d7b382005-11-29 20:07:23 +0000513 * In multithreaded loop send a TERM signal to the main thread if
514 one of the other threads exit. Needed on FreeBSD for a clean exit
515 on umount. Should not cause any harm on Linux either
516
Miklos Szerediead7f102005-11-28 16:02:27 +00005172005-11-28 Miklos Szeredi <miklos@szeredi.hu>
518
519 * Fix bug in 32-bit file handle compatibility
520
Miklos Szeredia90b7342005-11-27 19:22:42 +00005212005-11-27 Miklos Szeredi <miklos@szeredi.hu>
522
523 * Block TERM, INT, HUP and QUIT signals in all but the main
524 thread. According to POSIX it's not specified which thread will
525 receive these signals.
Miklos Szeredi2b478112005-11-28 13:27:10 +0000526
527 * Kernel changes:
528
529 * Check for directory aliasing on mkdir, not just on lookup
530
531 * Check for special node ID values in create+open operation
532
533 * Sync with -mm: readv, writev, aio_read and aio_write methods
534 added to file operations
535
536 * Cleanups: lookup code, page offset calculation
537
538 * ABI stepped to 7.4, changes:
539
540 * frsize member added to fuse_kstatfs structure
541
542 * added support for negative entry caching: on lowlevel API if
543 fuse_entry_param::ino is set to zero in reply to a lookup request,
544 the kernel will cache the dentry for the specified amount of time.
545
546 * libfuse: added 'negative_timeout' option: specifies how much
547 negative entries should be cached. Default is zero, to be
Miklos Szerediead7f102005-11-28 16:02:27 +0000548 compatible with prior versions
Miklos Szeredi2b478112005-11-28 13:27:10 +0000549
Miklos Szeredibac4c772005-11-23 13:35:54 +00005502005-11-22 Miklos Szeredi <miklos@szeredi.hu>
551
552 * Add detection of mainline FUSE code in running kernel
553
Miklos Szeredi8393e3d2005-11-21 11:37:01 +00005542005-11-21 Miklos Szeredi <miklos@szeredi.hu>
555
556 * Don't use async cancelation in multithreaded loop. This makes
557 it more portable to systems where read() is not async cancel safe.
558 Report from Andriy Gapon
559
Miklos Szeredi05c97842005-11-20 17:05:07 +00005602005-11-20 Miklos Szeredi <miklos@szeredi.hu>
561
562 * Warn if API version 11 compatibility is requested
563
Miklos Szeredi9c2ccb42005-11-17 17:11:48 +00005642005-11-17 Miklos Szeredi <miklos@szeredi.hu>
565
566 * More FreeBSD merge
567
Miklos Szeredi832ee442005-11-18 21:02:36 +0000568 * fusermount: don't allow mountpoints with '\n', '\t', or '\\' in
569 them, because it corrupts /etc/mtab. Found by Thomas Biege
Miklos Szeredibac4c772005-11-23 13:35:54 +0000570 CVE-2005-3531
Miklos Szeredi832ee442005-11-18 21:02:36 +0000571
572 * libfuse: don't use system() to invoke 'fusermount -u ...'
573 because it breaks mountpoints with spaces in them into multiple
574 arguments
575
Miklos Szeredib3f99722005-11-16 13:00:24 +00005762005-11-16 Miklos Szeredi <miklos@szeredi.hu>
577
578 * Merge library part of FreeBSD port. Patch by Csaba Henk
579
Miklos Szeredi3a770472005-11-11 21:32:42 +00005802005-11-11 Miklos Szeredi <miklos@szeredi.hu>
581
582 * Use 64bit type for file handle, so the full range supported by
583 the kernel interface is available to applications
584
Miklos Szeredibcc53852005-11-10 09:54:41 +00005852005-11-10 Miklos Szeredi <miklos@szeredi.hu>
586
587 * Moved mountpoint argument checking from fuse_parse_cmdline() to
588 fuse_mount() in preparation to FreeBSD merge.
589
Miklos Szeredi4ec06812005-11-08 13:04:27 +00005902005-11-08 Miklos Szeredi <miklos@szeredi.hu>
591
592 * Remove unneeded close() from fuse_teardown(). Spotted by Csaba
593 Henk.
594
Miklos Szeredic706ad92005-11-07 15:30:48 +00005952005-11-07 Miklos Szeredi <miklos@szeredi.hu>
596
597 * Make the statfs change backwards compatible.
598
Miklos Szeredi52cb09d2005-11-07 11:59:00 +00005992005-11-06 Miklos Szeredi <miklos@szeredi.hu>
600
601 * Change ->statfs() method to use 'struct statvfs' instead of
602 'struct statfs'. This makes the API more portable since statvfs()
603 is defined by POSIX.
604
Miklos Szeredif7eec032005-10-28 13:09:50 +00006052005-10-28 Miklos Szeredi <miklos@szeredi.hu>
606
607 * Add fgetattr() method, which currently will only be called after
608 a successful call to a create() method.
609
Miklos Szeredib0b13d12005-10-26 12:53:25 +00006102005-10-26 Miklos Szeredi <miklos@szeredi.hu>
611
Miklos Szeredi11509ce2005-10-26 16:04:04 +0000612 * Change kernel ABI version to 7.3
613
Miklos Szeredib0b13d12005-10-26 12:53:25 +0000614 * Add ACCESS operation. This is called from the access() system
Miklos Szeredid9079a72005-10-26 15:29:06 +0000615 call if 'default_permissions' mount option is not given, and is
616 not called on kernels 2.4.*
Miklos Szeredib0b13d12005-10-26 12:53:25 +0000617
Miklos Szeredid9079a72005-10-26 15:29:06 +0000618 * Add atomic CREATE+OPEN operation. This will only work with
619 2.6.15 (presumably) or later Linux kernels.
620
Miklos Szeredi11509ce2005-10-26 16:04:04 +0000621 * Add ftruncate() method. This will only work with 2.6.15
622 (presumably) or later Linux kernels.
623
624 * Fix kernel module compile if kernel source and build directories
625 differ. Report and initial patch by John Eastman
626
Miklos Szeredic4c12ae2005-10-20 14:48:50 +00006272005-10-18 Miklos Szeredi <miklos@szeredi.hu>
628
629 * lib: optimize buffer reallocation in fill_dir.
630
Miklos Szeredic9daeb12005-10-17 10:19:21 +00006312005-10-17 Miklos Szeredi <miklos@szeredi.hu>
632
633 * Released 2.4.1
634
Miklos Szeredif412d072005-10-14 21:24:32 +00006352005-10-14 Miklos Szeredi <miklos@szeredi.hu>
636
Miklos Szeredi062f0e52005-10-14 21:28:21 +0000637 * libfuse: add debug for write result (by Shaun Jackman) and
638 warnings for too large read/write result
Miklos Szeredif412d072005-10-14 21:24:32 +0000639
Miklos Szeredib75d4b92005-10-11 10:12:08 +00006402005-10-11 Miklos Szeredi <miklos@szeredi.hu>
641
642 * Spelling fixes, thanks to Ioannis Barkas
643
Miklos Szeredibaab5872005-10-10 08:41:14 +00006442005-10-10 Miklos Szeredi <miklos@szeredi.hu>
645
646 * fuse_common.h: use extern "C". Thanks to Valient Gough for the
647 patch
648
Miklos Szeredi4f5df5e2005-10-07 12:39:58 +00006492005-10-07 Miklos Szeredi <miklos@szeredi.hu>
650
651 * highlevel-lib: init() and destroy() methods didn't have an
652 initialized fuse_context. Bug reported by Tim Stoakes
653
Miklos Szeredif2491122005-10-04 10:10:41 +00006542005-10-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi83f253e2005-10-04 05:56:01 +0000655
656 * Released 2.4.0
657
Miklos Szeredi836ab712005-10-03 14:11:59 +00006582005-10-03 Miklos Szeredi <miklos@szeredi.hu>
659
660 * Add documentation to fuse_lowlevel.h
661
662 * API cleanups:
663
664 * Remove definitions of unused FATTR_CTIME / FUSE_SET_ATTR_CTIME
665
666 * Move fuse_mount() and fuse_unmount() to fuse_common.h
667
668 * Change the return type of fuse_reply_none() from int to void.
669
Miklos Szerediaf138742005-09-30 08:49:59 +00006702005-09-30 Miklos Szeredi <miklos@szeredi.hu>
671
672 * kernel: NFS exporting leaked dentries. Bug found and fixed by
673 Akshat Aranya.
674
Miklos Szeredidb016e02005-09-29 10:06:27 +00006752005-09-29 Miklos Szeredi <miklos@szeredi.hu>
676
677 * fusermount: fix error message, when unable to open /dev/fuse.
678 Report by Balázs Pozsár
679
Miklos Szeredi35200932005-09-28 14:50:49 +00006802005-09-28 Miklos Szeredi <miklos@szeredi.hu>
681
682 * UClibc fixes from Christian Magnusson
683
Miklos Szeredi8eddf642005-09-27 08:58:26 +00006842005-09-27 Miklos Szeredi <miklos@szeredi.hu>
685
686 * Added NAME="%k" to util/udev.rules. Fix by Mattias Wadman.
687
Miklos Szerediedec95c2005-09-26 10:22:22 +00006882005-09-26 Miklos Szeredi <miklos@szeredi.hu>
689
Miklos Szeredi39851ac2005-09-26 11:17:50 +0000690 * Released 2.4.0-rc1
691
6922005-09-26 Miklos Szeredi <miklos@szeredi.hu>
693
Miklos Szerediedec95c2005-09-26 10:22:22 +0000694 * fusermount: allow user umount in the case when /etc/mtab is a
695 symlink to /proc/mounts. Reported by Balázs Pozsár.
696
Miklos Szeredi6becf0b2005-09-23 11:25:28 +00006972005-09-23 Miklos Szeredi <miklos@szeredi.hu>
698
Miklos Szeredi8722dd22005-09-23 13:34:44 +0000699 * Check for special node ID values in lookup and creation
Miklos Szeredi6becf0b2005-09-23 11:25:28 +0000700
Miklos Szeredif45f3c12005-09-22 15:14:27 +00007012005-09-22 Miklos Szeredi <miklos@szeredi.hu>
702
703 * Slight optimization in returning EINVAL error in case of an open
704 with O_DIRECT flag.
705
Miklos Szeredi670d07a2005-09-20 11:36:32 +00007062005-09-20 Miklos Szeredi <miklos@szeredi.hu>
707
708 * Remove '--enable-auto-modprobe' configure flag. Module
709 auto-loading is now handled by the kernel.
710
Miklos Szeredid51fca12005-09-15 12:51:00 +00007112005-09-15 Miklos Szeredi <miklos@szeredi.hu>
712
713 * Install UDEV rule file, so /dev/fuse is created with mode 0666.
714 Help from Jens M. Noedler.
715
Miklos Szeredi7e7530d2005-09-14 15:20:26 +00007162005-09-14 Miklos Szeredi <miklos@szeredi.hu>
717
718 * Add memory cleanup on thread exit
719
Miklos Szeredid7ea8cf2005-09-13 12:53:58 +00007202005-09-13 Miklos Szeredi <miklos@szeredi.hu>
721
722 * Set umask to zero in fusexmp and fusexmp_fh, so that
723 files/directories are created with the requested mode.
724
Miklos Szeredi0d41f2f2005-09-12 16:40:26 +00007252005-09-12 Miklos Szeredi <miklos@szeredi.hu>
726
727 * Don't ignore read error in multithreaded loop
728
Miklos Szeredifcf9f8d2005-09-08 14:28:54 +00007292005-09-08 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi56487812005-09-02 13:05:06 +0000730
Miklos Szeredi2277ecc2005-09-08 15:34:44 +0000731 * Released 2.4.0-pre2
732
7332005-09-08 Miklos Szeredi <miklos@szeredi.hu>
734
Miklos Szeredifcf9f8d2005-09-08 14:28:54 +0000735 * Revert lock and access operations. Postpone these until 2.5.
736
7372005-09-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi56487812005-09-02 13:05:06 +0000738
739 * Fix compile warning on 2.6.13 and later
740
Miklos Szeredi3b9e53f2005-09-02 16:04:48 +0000741 * Fix compilation on old kernels
Miklos Szeredi0716de02005-09-02 14:56:09 +0000742
Miklos Szeredi77ccf652005-08-19 14:40:27 +00007432005-08-19 Miklos Szeredi <miklos@szeredi.hu>
744
745 * lib: always refresh directory contents after rewinddir() to
746 conform to SUS. Bug found by John Muir.
747
Miklos Szeredia1482422005-08-14 23:00:27 +00007482005-08-15 Miklos Szeredi <miklos@szeredi.hu>
749
Miklos Szeredic43f9412005-08-15 15:10:48 +0000750 * Released 2.4.0-pre1
751
7522005-08-14 Miklos Szeredi <miklos@szeredi.hu>
753
Miklos Szeredia1482422005-08-14 23:00:27 +0000754 * lib: cleaned up (or messed up, depending on your POV) the low
755 level library API. Hopefully this is close to the final form.
756
Miklos Szeredicc1b97c2005-08-05 10:35:26 +00007572005-08-05 Miklos Szeredi <miklos@szeredi.hu>
758
759 * fusermount: don't allow empty mountpoint argument, which defeats
760 automatic umounting in fuse_main(). Bugreport by Václav Jůza
761
Miklos Szeredif6e0ec62005-08-03 09:11:06 +00007622005-08-03 Miklos Szeredi <miklos@szeredi.hu>
763
764 * fix warnings in fuse.h and fuse_lowlevel.h if -Wshadow compiler
765 option is used (Paul Alfille).
766
Miklos Szeredi6c0209a2005-08-02 13:31:28 +00007672005-08-02 Miklos Szeredi <miklos@szeredi.hu>
768
769 * highlevel-lib: added mount options "attr_timeout" and
770 "entry_timeout". These options control the length of time file
771 attributes and entries (names) are cached. Both default to 1.0
772 second.
Miklos Szeredif6e0ec62005-08-03 09:11:06 +0000773
774 * kernel: correctly handle zero timeout for attributes and entries
775
Miklos Szeredi56a61f02005-08-01 10:42:25 +00007762005-08-01 Miklos Szeredi <miklos@szeredi.hu>
777
778 * Added missing symbols to versionscript (Joshua J. Berry)
779
Miklos Szeredie77cc072005-08-01 11:58:51 +0000780 * kernel: implement two flags, open can set: 'direct_io' and
781 'keep_cache'. These correspond exactly to mount options
782 'direct_io' and 'kernel_cache', but allow a per-open setting.
783
784 * Move 'direct_io' and 'kernel_cache' mount option handling to
785 userspace. For both mount options, if the option is given, then
786 the respective open flag is set, otherwise the open flag is left
787 unmodified (so the filesystem can set it).
Miklos Szeredi7b28eae2005-08-01 12:48:30 +0000788
Miklos Szeredi31066bb2005-08-01 14:49:31 +0000789 * lib (highlevel): make open method optional
Miklos Szeredif6e0ec62005-08-03 09:11:06 +0000790
Miklos Szeredi2aaf24a2005-07-28 11:59:41 +00007912005-07-28 Miklos Szeredi <miklos@szeredi.hu>
792
793 * kernel: invalidate attributes for read/readdir/readlink
794 operations
795
796 * kernel: detect newer UML kernels
797
Miklos Szeredibfb99462005-07-26 11:07:55 +00007982005-07-26 Miklos Szeredi <miklos@szeredi.hu>
799
800 * Make the installation path of fuse.ko and mount.fuse
801 configurable through INSTALL_MOD_PATH and MOUNT_FUSE_PATH
802 environment variables. Requirement and help from Csaba Henk.
803
Miklos Szeredi8d4d1b82005-07-22 11:58:47 +00008042005-07-22 Miklos Szeredi <miklos@szeredi.hu>
805
806 * Fix bug, that causes filesystem requests to hang when unique
807 request counter becomes negative. This happens after
808 2,147,483,648 operations, so most people won't care. Thanks to
809 Franco Broi for the report and testing.
810
Miklos Szeredi9b813af2005-07-21 07:59:37 +00008112005-07-21 Miklos Szeredi <miklos@szeredi.hu>
812
813 * Don't change mtime/ctime/atime to local time on read/write.
814 Bug reported by Ben Grimm
815
816 * Install fuse_common.h and fuse_lowlevel.h. Report by Christian
817 Magnusson
818
819 * fusermount: use getopt_long() for option parsing. It allows the
820 use of '--' to stop argument scanning, so fusermount can now
821 operate on directories whose names begin with a '-'. Patch by
822 Adam Connell
823
Miklos Szeredibd10a7b2005-07-15 09:59:59 +00008242005-07-15 Miklos Szeredi <miklos@szeredi.hu>
825
826 * fusermount: add '-v', '--version' and '--help' options
827
828 * add inode based API
829
Miklos Szeredi2482fdb2005-07-12 13:23:53 +00008302005-07-12 Miklos Szeredi <miklos@szeredi.hu>
831
832 * lib: don't block signals in worker threads. Problem noticed by
833 Usarin Heininga
834
Miklos Szeredic902a852005-07-07 12:35:37 +00008352005-07-07 Miklos Szeredi <miklos@szeredi.hu>
836
837 * lib: don't allow both 'allow_other' and 'allow_root' options to
838 be given
839
Miklos Szeredi437d8112005-07-06 09:14:20 +00008402005-07-06 Miklos Szeredi <miklos@szeredi.hu>
841
842 * fusermount: check if mountpoint is empty (only '.' and '..' for
843 directories, and size = 0 for regular files). If "nonempty"
844 option is given, omit this check. This is useful, so users don't
845 accidentally hide data (e.g. from backup programs). Thanks to
846 Frank van Maarseveen for pointing this out.
847
848 * kernel: check if mandatory mount options ('fd', 'rootmode',
849 'user_id', 'group_id') are all given
850
Miklos Szeredi340d21f2005-07-06 10:07:52 +0000851 * lib: simplify 'readdir_ino' handling
852
Miklos Szeredie331c4b2005-07-06 13:34:02 +0000853 * lib: add mount options 'umask=M', 'uid=N', 'gid=N'
854
Miklos Szeredibb9f5172005-07-03 18:03:11 +00008552005-07-03 Miklos Szeredi <miklos@szeredi.hu>
856
857 * kernel: clean up 'direct_io' code
858
Miklos Szeredie1bcece2005-06-28 10:37:06 +00008592005-06-28 Miklos Szeredi <miklos@szeredi.hu>
860
861 * Add 'mount.fuse' written by Petr Klima
862
Miklos Szeredi866826d2005-06-28 12:22:57 +0000863 * '/dev/fuse' is created by 'make install' if does not yet exist
864
Miklos Szeredi129ef8f2005-06-20 13:48:42 +00008652005-06-20 Miklos Szeredi <miklos@szeredi.hu>
866
867 * Fix UCLIBC compile error. Patch by Christian Magnusson
868
Miklos Szerediec12fad2005-06-08 10:26:34 +00008692005-06-08 Miklos Szeredi <miklos@szeredi.hu>
870
871 * Enable the auto-loading of the module via access to the
872 corresponding device file. Patch by Takashi Iwai.
873
Miklos Szeredidaa690e2005-06-08 10:41:36 +0000874 * Allow mounting a regular file (over a regular file) for
875 unprivleged users.
876
Miklos Szeredi7495abf2005-06-08 11:01:17 +0000877 * Do not create temporary device file. Require "/dev/fuse" to
878 exist, and be readable/writable by the mounting user.
879
Miklos Szeredi46960ce2005-06-02 09:05:00 +00008802005-06-02 Miklos Szeredi <miklos@szeredi.hu>
881
Miklos Szeredi56478552005-06-02 10:29:00 +0000882 * Released 2.3.0
883
8842005-06-02 Miklos Szeredi <miklos@szeredi.hu>
885
Miklos Szeredi46960ce2005-06-02 09:05:00 +0000886 * Fix serious information leak: if the filesystem returns a short
887 byte count to a read request, and there are non-zero number of
888 pages which are not filled at all, these pages will not be zeroed.
889 Hence the user can read out previous memory contents. Found by
890 Sven Tantau.
891
Miklos Szeredi33be22d2005-05-27 09:12:43 +00008922005-05-27 Miklos Szeredi <miklos@szeredi.hu>
893
894 * Add "readdir_ino" mount option, which tries to fill in the d_ino
895 field in struct dirent. This mount option is ignored if "use_ino"
896 is used. It helps some programs (e.g. 'pwd' used over NFS from a
897 non-Linux OS). Patch by David Shaw.
898
Miklos Szeredif94e0102005-05-12 14:56:34 +00008992005-05-12 Miklos Szeredi <miklos@szeredi.hu>
900
Miklos Szeredieb009c42005-05-12 15:01:17 +0000901 * Released 2.3-rc1
902
9032005-05-12 Miklos Szeredi <miklos@szeredi.hu>
904
Miklos Szeredif94e0102005-05-12 14:56:34 +0000905 * File save in krusader and other editors doesn't work with sshfs,
906 because open() is interrupted by a periodic signal, and open()
907 restarts forever, without any progress. This could just be fixed
908 in open(), but the problem is more generic: if signals are
909 received more often than the filesystem can get the request to
910 userspace, it will never finish. This is probably only a
911 theoretical problem, nevertheless I'm removing the possibility to
912 interrupt requests with anything other than SIGKILL, even before
913 being sent to userspace. Bugreport by Eduard Czimbalmos.
914
Miklos Szeredi0b9a06e2005-05-09 09:05:49 +00009152005-05-09 Miklos Szeredi <miklos@szeredi.hu>
916
Miklos Szeredic2a33ee2005-05-09 13:29:17 +0000917 * libfuse: add "tree_lock" rwlock, that is locked for write in
918 rename, unlink and rmdir, and locked for read in all other
919 operations. This should fix the rename/release race reported by
920 Valient Gough and others. The solution is very coarse, a finer
921 grained locking scheme could be implemented, but it would be much
922 more complex. Let's see whether this is good enough.
923
9242005-05-09 Miklos Szeredi <miklos@szeredi.hu>
925
Miklos Szeredi0b9a06e2005-05-09 09:05:49 +0000926 * Released 2.3-pre7
927
Miklos Szeredi38009022005-05-08 19:47:22 +00009282005-05-08 Miklos Szeredi <miklos@szeredi.hu>
929
930 * Better fix for out of order FORGET messages. Now the
931 LOOKUP/FORGET messages are balanced exactly (one FORGET can
932 balance many lookups), so the order no longer matters. This
Miklos Szeredi0b9a06e2005-05-09 09:05:49 +0000933 changes the kernel ABI slightly, but the library remains backward
Miklos Szeredi38009022005-05-08 19:47:22 +0000934 compatible.
935
Miklos Szeredid0cf1fb2005-05-06 10:10:38 +00009362005-05-06 Miklos Szeredi <miklos@szeredi.hu>
937
938 * Fix abort for out of order FORGET messages. Again. Spotted by
939 Franco Broi again. Sorry :)
940
Miklos Szeredi9372ffd2005-04-29 08:03:24 +00009412005-04-29 Miklos Szeredi <miklos@szeredi.hu>
942
Miklos Szeredicb6413a2005-04-29 08:16:20 +0000943 * Released 2.3-pre6
944
9452005-04-29 Miklos Szeredi <miklos@szeredi.hu>
946
Miklos Szeredi9372ffd2005-04-29 08:03:24 +0000947 * Make fusermount work with fuse kernel modules not yet supporting
948 the "group_id" option (added for the purpose of stricter
949 permission checking).
950
Miklos Szeredi9c1b68d2005-04-28 09:55:09 +00009512005-04-28 Miklos Szeredi <miklos@szeredi.hu>
952
953 * Check for hard-linked directories in lookup. This could cause
954 problems in the VFS, which assumes that such objects never exist.
955
956 * Make checking of permission for other users more strict. Now
957 the same privilege is required for the mount owner as for ptrace
958 on the process performing the filesystem operation.
Miklos Szeredi21019c92005-05-09 11:22:41 +0000959
Miklos Szeredi3efcb562005-04-23 13:34:29 +00009602005-04-23 Miklos Szeredi <miklos@szeredi.hu>
961
962 * Released 2.3-pre5
963
Miklos Szeredid001bf92005-04-22 07:54:11 +00009642005-04-22 Miklos Szeredi <miklos@szeredi.hu>
965
966 * Add -msoft-float to kernel module compile flags for 2.4.X. This
967 is needed on certain architectures. Report from Chris Kirby
968
969 * Fix buggy behavior of open(..., O_CREAT|O_EXCL) if interrupted.
970 Reported by David Shaw
971
Miklos Szeredi0111f9d2005-04-22 12:04:55 +0000972 * Remove "allow_root" option from kernel module, and implement
973 it's functionality in the library
974
975 * Fix Oops caused by premature release of fuse_conn. Clean up
976 related code, to be more readable
977
Miklos Szeredif9137452005-04-23 10:59:44 +0000978 * Sendfile should not use page cache if "direct_io" mount option
979 is given
980
Miklos Szeredib7640d22005-04-08 15:15:28 +00009812005-04-08 Miklos Szeredi <miklos@szeredi.hu>
982
983 * Fix Oops in case of nfs export. Spotted by David Shaw
984
Miklos Szeredi89814a12005-04-08 16:39:09 +0000985 * Fix another Oops in case of write over nfs with direct_io turned
986 on. Again spotted by David Shaw
987
Miklos Szerediab974562005-04-07 15:40:21 +00009882005-04-07 Miklos Szeredi <miklos@szeredi.hu>
989
Miklos Szeredi432d6182005-04-07 15:56:13 +0000990 * Released 2.3-pre4
991
9922005-04-07 Miklos Szeredi <miklos@szeredi.hu>
993
Miklos Szerediab974562005-04-07 15:40:21 +0000994 * lib: finalized new readdir() interface, which now supersedes the
995 getdir() method.
996
Miklos Szeredi30e093a2005-04-03 17:44:54 +00009972005-04-03 Miklos Szeredi <miklos@szeredi.hu>
998
999 * Released 2.3-pre3
1000
10012005-04-03 Miklos Szeredi <miklos@szeredi.hu>
1002
1003 * Implement backward compatibility with version 5 kernel ABI
1004
Miklos Szeredi18fce982005-04-01 21:07:35 +000010052005-04-01 Miklos Szeredi <miklos@szeredi.hu>
1006
1007 * Released 2.3-pre2
1008
10092005-04-01 Miklos Szeredi <miklos@szeredi.hu>
1010
1011 * kernel: fix dirent offset handling
1012
1013 * lib: add readdir and releasedir methods
1014
1015 * lib: use fh field of fuse_file_info in opendir, readdir,
1016 releasedir and fsyncdir methods
1017
1018 * lib: check kernel API version and bail out of it's old. This
1019 will be properly fixed in the next release
1020
10212005-03-31 Miklos Szeredi <miklos@szeredi.hu>
1022
1023 * Released 2.3-pre1
1024
Miklos Szeredieab72ef2005-03-31 19:59:12 +000010252005-03-31 Miklos Szeredi <miklos@szeredi.hu>
1026
1027 * kernel API: add padding to structures, so 64bit and 32bit
1028 compiler will return the same size
1029
1030 * kernel API: add offset field to fuse_dirent. This will allow
1031 more sophisticated readdir interface for userspace
1032
1033 * kernel API: change major number to 6
1034
1035 * kernel: fix warnings on 64bit archs
1036
1037 * kernel: in case of API version mismatch, return ECONNREFUSED
1038
Miklos Szeredi407e6a72005-03-25 12:19:43 +000010392005-03-24 Miklos Szeredi <miklos@szeredi.hu>
1040
1041 * kernel: trivial cleanups
1042
Miklos Szeredi4283ee72005-03-21 12:09:04 +000010432005-03-21 Miklos Szeredi <miklos@szeredi.hu>
1044
1045 * Add fsyncdir() operation
1046
Miklos Szeredid17da462005-03-21 11:47:04 +000010472005-03-19 Miklos Szeredi <miklos@szeredi.hu>
1048
1049 * kernel: add locking to background list (fixes previous fix)
1050
10512005-03-18 Miklos Szeredi <miklos@szeredi.hu>
1052
1053 * kernel: fix bug which could cause leave busy inodes after
1054 unmount, and Oops.
1055
10562005-03-08 Miklos Szeredi <miklos@szeredi.hu>
1057
1058 * examples: add -lpthread to link flags to work around valgrind
1059 quirk
1060
1061 * lib: don't exit threads, so cancelation doesn't cause segfault
1062
Miklos Szeredi31fa41c2005-03-04 17:28:51 +000010632005-03-04 Miklos Szeredi <miklos@szeredi.hu>
1064
1065 * kernel: fix nasty bug which could cause an Oops under certain
1066 situations. Found by Magnus Johansson
1067
Miklos Szeredif43f0632005-02-28 11:46:56 +000010682005-02-28 Miklos Szeredi <miklos@szeredi.hu>
1069
Miklos Szeredi159bd7e2005-02-28 17:32:16 +00001070 * libfuse: added opendir() method. This can be used in case
Miklos Szeredif43f0632005-02-28 11:46:56 +00001071 permission checking in getdir() is too late. Thanks to Usarin
1072 Heininga for pointing out this deficiency
1073
Miklos Szeredi159bd7e2005-02-28 17:32:16 +00001074 * libfuse: added init() and destroy() methods to fuse_operations
1075
Miklos Szeredif43f0632005-02-28 11:46:56 +00001076 * kernel: llseek() method for files and directories made explicit
1077
1078 * kernel: fixed inode leak in NFS export in case of nodeid
1079 wrapping
1080
Miklos Szeredied3c97c2005-02-15 17:04:50 +000010812005-02-15 Miklos Szeredi <miklos@szeredi.hu>
1082
1083 * libfuse: clean up some unitialized memory found with valgrind
1084
Miklos Szeredi47c52982005-02-23 09:27:38 +00001085 * Add -lpthread to Libs in fuse.pc. Valgrind seems to need an
1086 explicitly linked libpthread for applications
1087
Miklos Szeredia7169412005-02-10 07:35:05 +000010882005-02-10 Miklos Szeredi <miklos@szeredi.hu>
1089
1090 * fusermount: set umask, otherwise /etc/mtab will have
1091 unpredictable permission. Spotted by Jindrich Kolorenc
1092
1093 * fusermount: set owner and group of /etc/mtab to original values
1094 on unmount
Miklos Szeredi830ef702005-02-10 19:39:34 +00001095
1096 * libfuse: add 'use_ino' option to help. Patch by Valient Gough
Miklos Szeredi21019c92005-05-09 11:22:41 +00001097
Miklos Szeredib92d9782005-02-07 16:10:49 +000010982005-02-07 Miklos Szeredi <miklos@szeredi.hu>
1099
1100 * Cleaned up directory reading (temporary file is not used)
1101
Miklos Szerediff30a6c2005-02-02 10:53:59 +000011022005-02-02 Miklos Szeredi <miklos@szeredi.hu>
1103
Miklos Szeredi7ed2e5d2005-02-02 13:31:14 +00001104 * Released 2.2
1105
11062005-02-02 Miklos Szeredi <miklos@szeredi.hu>
1107
Miklos Szerediff30a6c2005-02-02 10:53:59 +00001108 * Fix possible race when operation is interrupted
1109
Miklos Szeredi7a983952005-01-28 09:58:19 +000011102005-01-28 Miklos Szeredi <miklos@szeredi.hu>
1111
Miklos Szeredie5183742005-02-02 11:14:04 +00001112 * Fix compilation on 2.6.7
Miklos Szeredi7a983952005-01-28 09:58:19 +00001113
Miklos Szeredied6b5dd2005-01-26 17:07:59 +000011142005-01-26 Miklos Szeredi <miklos@szeredi.hu>
1115
Miklos Szeredid48d5f72005-01-26 20:43:41 +00001116 * Released 2.2-pre6
1117
11182005-01-26 Miklos Szeredi <miklos@szeredi.hu>
1119
Miklos Szeredied6b5dd2005-01-26 17:07:59 +00001120 * Fix bug in link() operation which caused the wrong path to be
1121 passed as the first argument. Found by Anton Altaparmakov
1122
Miklos Szeredi01fd89c2005-01-21 11:18:35 +000011232005-01-21 Miklos Szeredi <miklos@szeredi.hu>
1124
1125 * LIB: fix double reply in readdir operation
1126
Miklos Szeredi773d4ae2005-01-21 16:09:08 +00001127 * fusermount: fix uid checking bug. Patch by Adam Connell
1128
Miklos Szeredi1e1cddf2005-02-02 10:15:36 +00001129 * KERNEL: fix compile on various RedHat patched 2.4 kernels.
Miklos Szeredi57762852005-01-21 16:46:58 +00001130 Patch by Keshava Gowda
1131
Miklos Szeredi64074142005-01-20 08:48:11 +000011322005-01-20 Miklos Szeredi <miklos@szeredi.hu>
1133
Miklos Szeredi092b50b2005-01-20 18:05:07 +00001134 * KERNEL: provide correct llseek semantics for fuse device (fixes
1135 a bug on Progeny 2.4.20 kernel). Reported by Valient Gough
1136
11372005-01-20 Miklos Szeredi <miklos@szeredi.hu>
1138
Miklos Szeredi64074142005-01-20 08:48:11 +00001139 * Released 2.2-pre5 (matches kernel 2.6.11-rc1-mm2)
1140
Miklos Szeredi1adb2272005-01-18 21:19:58 +000011412005-01-18 Miklos Szeredi <miklos@szeredi.hu>
1142
1143 * KERNEL ABI: remove GETDIR operation, and add OPENDIR, READDIR
1144 and RELEASEDIR. This ends the ugly hack of passing a file
1145 descriptor to the kernel, and actually makes the code simpler.
1146
Miklos Szeredi7db35c02005-01-17 09:46:28 +000011472005-01-17 Miklos Szeredi <miklos@szeredi.hu>
1148
Miklos Szeredic2e960e2005-01-17 13:05:21 +00001149 * Released 2.2-pre4
1150
11512005-01-17 Miklos Szeredi <miklos@szeredi.hu>
1152
Miklos Szeredi7db35c02005-01-17 09:46:28 +00001153 * fusermount: remove capability setting, which was the cause of
1154 problems for some users. It seems that FS related capabilities
Miklos Szeredie5183742005-02-02 11:14:04 +00001155 are removed by setfsuid(), so this isn't even needed.
Miklos Szeredi7db35c02005-01-17 09:46:28 +00001156
Miklos Szeredidbe0f652005-01-15 14:32:56 +000011572005-01-15 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi9ed69ba2005-01-13 12:11:49 +00001158
Miklos Szeredidbe0f652005-01-15 14:32:56 +00001159 * fix compilation on 2.4 kernels (reported by Valient Gough)
1160
1161 * fix failure to unmount bug (found by David Shaw)
Miklos Szeredie5183742005-02-02 11:14:04 +00001162
Miklos Szeredi5ef2a9b2005-01-15 09:42:01 +00001163 * fusermount: improve parsing of /etc/fuse.conf
1164
11652005-01-13 Miklos Szeredi <miklos@szeredi.hu>
1166
Miklos Szeredi9ed69ba2005-01-13 12:11:49 +00001167 * Remove 'mount_max' and 'user_allow_other' module options. These
1168 are now checked by fusermount, and can be set in /etc/fuse.conf
1169
1170 * KERNEL: change check for fsid == 0 to capable(CAP_DAC_OVERRIDE)
1171
Miklos Szeredi81394522005-01-11 14:24:18 +000011722005-01-11 Miklos Szeredi <miklos@szeredi.hu>
1173
1174 * KERNEL: fix possible inode allocation problem, where
1175 sizeof(struct inode) is not aligned (found by Mike Waychison)
1176
1177 * KERNEL: use new follow_link/put_link methods
1178
1179 * KERNEL: cosmetic fixes
1180
Miklos Szeredic6ee9fd2005-01-10 09:53:04 +000011812005-01-10 Miklos Szeredi <miklos@szeredi.hu>
1182
1183 * Released 2.2-pre3
1184
11852005-01-10 Miklos Szeredi <miklos@szeredi.hu>
1186
1187 * Add missing code that was accidently left out
1188
Miklos Szeredi8c7da232005-01-09 12:27:41 +000011892005-01-09 Miklos Szeredi <miklos@szeredi.hu>
1190
Miklos Szeredi8d775f72005-01-09 20:22:53 +00001191 * Released 2.2-pre2
1192
11932005-01-09 Miklos Szeredi <miklos@szeredi.hu>
1194
Miklos Szeredi3c7d41b2005-01-09 20:05:27 +00001195 * Change "uid" mount option to "user_id" to avoid confusion with a
1196 mount option "uid" commonly used by many filesystems
1197
11982005-01-09 Miklos Szeredi <miklos@szeredi.hu>
1199
Miklos Szeredi8c7da232005-01-09 12:27:41 +00001200 * Released 2.2-pre1
1201
12022005-01-09 Miklos Szeredi <miklos@szeredi.hu>
1203
1204 * If FUSE is configured in the kernel, don't build it by default
1205
Miklos Szeredi2a927272005-01-07 11:14:15 +000012062005-01-07 Miklos Szeredi <miklos@szeredi.hu>
1207
1208 * Compile fix by Christian Magnusson
1209
Miklos Szeredib6220192005-01-05 16:19:10 +000012102005-01-05 Miklos Szeredi <miklos@szeredi.hu>
1211
1212 * Fix compilation for 2.6.{0-5} kernels
1213
Miklos Szeredi0f62d722005-01-04 12:45:54 +000012142005-01-04 Miklos Szeredi <miklos@szeredi.hu>
1215
1216 * KERNEL: if request is interrupted, still keep reference to used
1217 inode(s) and file, so that FORGET and RELEASE are not sent until
1218 userspace finishes the request.
1219
Miklos Szeredi3f0005f2005-01-04 19:24:31 +00001220 * remove /{sys,proc}/fs/fuse/version, and instead add an INIT
1221 request with the same information, which is more flexible,
1222 simpler, works on embedded systems.
1223
Miklos Szeredi0f62d722005-01-04 12:45:54 +000012242004-12-16 Miklos Szeredi <miklos@szeredi.hu>
1225
1226 * KERNEL ABI: update interface to make it independent of type
1227 sizes. This will help on 64 bit architectures which can run
1228 legacy 32 bit applications.
1229
1230 * KERNEL ABI: add "len" field to request headers. This will allow
1231 sending/receiving requests in multiple chunks.
1232
1233 * KERNEL: handle file type change more intelligently
1234
1235 * LIB: "-o debug" option should disable backgrounding (fix by
1236 Fabien Reygrobellet)
1237
Miklos Szeredi0fcfa032004-12-13 15:22:28 +000012382004-12-13 Miklos Szeredi <miklos@szeredi.hu>
1239
1240 * KERNEL: invalidate dentry/attributes if interrupted request
1241 could leave filesystem in an unknown state.
1242
Miklos Szeredie56818b2004-12-12 11:45:24 +000012432004-12-12 Miklos Szeredi <miklos@szeredi.hu>
1244
1245 * KERNEL: lots of cleanups related to avoiding possible deadlocks.
1246 These will cause some regressions, but stability is considered
1247 more important. If any of these features turns out to be
1248 important, it can be readded with the deadlock problems addressed.
Miklos Szeredie5183742005-02-02 11:14:04 +00001249
Miklos Szeredie56818b2004-12-12 11:45:24 +00001250 * Make all requests interruptible (only with SIGKILL currently).
1251 This can be used to break any deadlock produced by the userspace
1252 filesystem accessing it's own exported files. The RELEASE request
1253 is special, because if it's interrupted before sending it to
1254 userspace it is still sent, but the reply is not awaited.
1255
1256 * If request is interrupted before being sent to userspace, and if
1257 it hasn't yet got any side effects, it is always restarted,
1258 regardless of the SA_RESTART flag. This makes these interruptions
1259 transparent to the process.
1260
1261 * Remove shared-writable mmap support, which was prone to an
1262 out-of-memory deadlock situation
1263
1264 * Remove INVALIDATE userspace initiated request
1265
1266 * Make readpages() synchronous. Asynchronous requests are
1267 deadlock prone, since they cannot be interrupted.
1268
1269 * Add readv/writev support to fuse device operations
1270
1271 * Remove some printks, which userspace FS can use for a DoS
1272 against syslog
1273
1274 * Remove 'large_read' mount option from 2.6 in kernel, check it in
1275 fusermount instead
1276
1277 * LIB: improve compatibility with a fuse.h header installed in
1278 ${prefix}/include which in turn includes the real header.
1279
1280 * LIB: improve compatibility by defining fuse_main() (which is now
1281 not used), so old configure scripts find it.
1282
Miklos Szeredi0adcc6f2004-12-10 11:55:25 +000012832004-12-10 Miklos Szeredi <miklos@szeredi.hu>
1284
1285 * When mounting on a subdirectory of / don't duplicate slashes at
1286 the beggining of path (spotted by David Shaw)
1287
Miklos Szeredi80a0c3c2004-12-09 17:30:59 +000012882004-12-09 Miklos Szeredi <miklos@szeredi.hu>
1289
1290 * Fix bug causing garbage in mount options (spotted by David Shaw)
1291
Miklos Szeredid59bb9d2004-12-07 10:04:24 +000012922004-12-07 Miklos Szeredi <miklos@szeredi.hu>
1293
1294 * Add 'writepage' flag to 'fuse_file_info'.
1295
1296 * More comments in fuse.h
1297
Miklos Szeredif458b8c2004-12-07 16:46:42 +00001298 * Get rid of double underscores
1299
Miklos Szeredi799993c2004-12-04 21:20:05 +000013002004-12-04 Miklos Szeredi <miklos@szeredi.hu>
1301
1302 * Add -D_FILE_OFFSET_BITS=64 to cflags provided by pkg-config
1303
1304 * helper.c: add -ho option, which only displays the options not
1305 the usage header. This can be used by filesystems which have
1306 their own options.
1307
Miklos Szeredi0b6a0ad2004-12-04 00:40:50 +000013082004-12-03 Miklos Szeredi <miklos@szeredi.hu>
1309
1310 * Add source compatibility to 2.1 and 1.1 APIs. To select betwen
1311 versions simply define FUSE_USE_VERSION to 22, 21 or 11 before
1312 including the fuse header
1313
1314 * Add binary compatibility to 2.1 version of library with symbol
1315 versioning
1316
Miklos Szeredi3c7d41b2005-01-09 20:05:27 +000013172004-12-03 Miklos Szeredi <miklos@szeredi.hu>
1318
1319 * Released 2.1
1320
Miklos Szeredi039322d2004-12-01 18:39:12 +000013212004-12-01 Miklos Szeredi <miklos@szeredi.hu>
1322
1323 * kernel: clean up writing functions
1324
1325 * kernel: no allocation on write in direct_io mode
1326
Miklos Szeredib9b94cd2004-12-01 18:56:39 +00001327 * move linux/fuse.h to fuse_kernel.h
1328
Miklos Szeredi83a07442004-11-30 18:25:20 +000013292004-11-30 Miklos Szeredi <miklos@szeredi.hu>
1330
1331 * kernel: clean up reading functions
1332
Miklos Szeredi2defe5e2004-11-29 16:53:44 +000013332004-11-29 Miklos Szeredi <miklos@szeredi.hu>
1334
1335 * kernel: make readpage() uninterruptible
1336
Miklos Szeredi96dfad72004-11-30 00:00:02 +00001337 * kernel: check readonly filesystem flag in fuse_permission
1338
1339 * lib: don't die if version file not found and new style device
1340 exists
1341
1342 * lib: add '-r' option, which is short for '-o ro'
1343
1344 * fusermount: simplify device opening
1345
Miklos Szeredi2defe5e2004-11-29 16:53:44 +00001346 * kernel: when direct_io is turend on, copy data directly to
1347 destination without itermediate buffer. More efficient and safer,
1348 since no allocation is done.
1349
1350 * fusermount: fix warning if fuse module is not loaded
Miklos Szeredi162bcbb2004-11-29 23:43:44 +00001351
1352 * kernel: use /dev/fuse on 2.4 too
Miklos Szeredie5183742005-02-02 11:14:04 +00001353
Miklos Szeredifb28c5e2004-11-26 12:15:06 +000013542004-11-26 Miklos Szeredi <miklos@szeredi.hu>
1355
1356 * libfuse API change: open, read, write, flush, fsync and release
1357 are passed a 'struct fuse_file_info' pointer containing the open
1358 flags (open and release), and the file handle. Verion changed to
1359 3.0.
1360
Miklos Szeredia25d4c22004-11-23 22:32:16 +000013612004-11-23 Miklos Szeredi <miklos@szeredi.hu>
1362
1363 * More cleanups in the kernel
1364
1365 * The 10,229 charater device number has been assigned for FUSE
1366
1367 * Version file checking fix (reported by Christian Magnusson)
1368
1369 * fusermount: opening the fuse device now doesn't need /sys.
1370
1371 * Optimize reading by controlling the maximum readahead based on
1372 the 'max_read' mount option
1373
1374 * fixes for UCLIBC (Christian Magnusson)
1375
Miklos Szeredi13ed4822004-11-20 11:12:21 +000013762004-11-19 Miklos Szeredi <miklos@szeredi.hu>
1377
1378 * Cleaned up kernel in preparation for merge into mainline:
1379
1380 * Use /sys/fs/fuse/version instead of /proc/fs/fuse/version
1381
1382 * Use real device (/dev/fuse) instead of /proc/fs/fuse/dev
1383
1384 * __user annotations for sparse
1385
1386 * allocate individual pages instead of kmalloc in fuse_readdir,
1387 fuse_read and fuse_write.
1388
1389 * Fix NFS export in case "use_ino" mount option is given
1390
Miklos Szeredif3845c42004-11-20 11:18:34 +00001391 * Make libfuse and fusermount compatible with future versions
1392
1393 * fusermount: properly add mount options to /etc/mtab
1394
13952004-11-15 Miklos Szeredi <miklos@szeredi.hu>
1396
1397 * fusermount: do not resolve last component of mountpoint on if it
1398 is '.' or '..'. This new path resolvation is now done on mount as
1399 well as unmount. This enables relative paths to work on unmount.
1400
1401 * fusermount: parse common mount options like "ro", "rw", etc...
1402
1403 * Allow module params to be changed through sysfs
1404
Miklos Szeredi08ddb8e2004-11-14 09:19:51 +000014052004-11-14 Miklos Szeredi <miklos@szeredi.hu>
1406
1407 * Released 2.1-pre1
1408
14092004-11-14 Miklos Szeredi <miklos@szeredi.hu>
1410
1411 * Fix bug in fuse_readpages() causing Oops in certain situations.
1412 Bug found by Vincenzo Ciancia.
1413
1414 * Fix compilation with kernels versions > 2.6.9.
1415
Miklos Szeredi3a6ea062004-11-11 10:33:58 +000014162004-11-11 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi51ec1032004-11-10 11:52:26 +00001417
Miklos Szeredi3a6ea062004-11-11 10:33:58 +00001418 * Check kernel interface version in fusermount to prevent
1419 strangeness in case of mismatch.
Miklos Szeredi51ec1032004-11-10 11:52:26 +00001420
Miklos Szeredi3d60e762004-11-11 14:44:04 +00001421 * No need to allocate fuse_conn until actual mount happens
1422
1423 * Fix potential race between umount and fuse_invalidate
1424
1425 * Check superblock of proc file in addition to inode number
1426
Miklos Szeredi08ddb8e2004-11-14 09:19:51 +00001427 * Fix race between request_send_noreply() and fuse_dev_release()
Miklos Szeredi3d60e762004-11-11 14:44:04 +00001428
Miklos Szeredi51ec1032004-11-10 11:52:26 +000014292004-11-10 Miklos Szeredi <miklos@szeredi.hu>
1430
1431 * Separate configure for the kernel directory
1432
Miklos Szeredi3a6ea062004-11-11 10:33:58 +00001433 * Don't allow write to return more than 'count'
1434
1435 * Extend kernel interface for future use
1436
Miklos Szeredi51ec1032004-11-10 11:52:26 +000014372004-11-09 Miklos Szeredi <miklos@szeredi.hu>
1438
1439 * Fix 'makeconf.sh' to use autoreconf if available
1440
Miklos Szeredi8fb48fe2004-11-08 14:48:52 +000014412004-11-08 Miklos Szeredi <miklos@szeredi.hu>
1442
Miklos Szeredid507c732004-11-08 17:32:25 +00001443 * Add ino argument to 'fuse_dirfil_t'. NOTE: This breaks source
1444 compatibility with earlier versions. To compile earier versions
1445 just add '-DFUSE_DIRFIL_COMPAT' compile flag or fix the source.
1446 Do not use the "use_ino" mount flag with filesystems compiled with
1447 FUSE_DIRFIL_COMPAT.
Miklos Szeredidb1c3652004-11-08 21:11:53 +00001448
1449 * Add pkg-config support. To compile a FUSE based filesystem you
1450 can do "gcc -Wall `pkg-config --cflags --libs fuse` myfs.c -o myfs"
1451 or similar. Note, that the PKG_CONFIG_PATH environment variable
1452 usually needs to be set to "/usr/local/lib/pkgconfig".
1453
1454 * fuse.h is now installed in ${prefix}/include/fuse/
Miklos Szeredie5183742005-02-02 11:14:04 +00001455
Miklos Szeredia13d9002004-11-02 17:32:03 +000014562004-11-02 Miklos Szeredi <miklos@szeredi.hu>
1457
1458 * Added "use_ino" mount option. This enables the filesystems to
1459 set the st_ino field on files
1460
Miklos Szeredib1ab8b52004-11-01 10:57:41 +000014612004-11-01 Miklos Szeredi <miklos@szeredi.hu>
1462
1463 * Fix compile problems with ancient (<=2.4.18) kernels (reported
1464 by Jeremy Smith)
1465
Miklos Szeredi874e3c12004-11-01 23:15:20 +00001466 * Add "allow_root" mount option. Patch by Yaroslav Rastrigin
1467
1468 * Clear the 'exited' flag when mail loop is finished
1469
Miklos Szeredie989f0d2004-10-28 20:24:58 +000014702004-10-28 Miklos Szeredi <miklos@szeredi.hu>
1471
1472 * Make xattr functions work under 2.6 (bug found by Vincenzo
1473 Ciancia)
1474
Miklos Szeredi95a2bfc2004-10-26 21:32:13 +000014752004-10-26 Miklos Szeredi <miklos@szeredi.hu>
1476
1477 * Reset request in fuse_flush() (bugreport by David Shaw)
1478
Miklos Szeredi5dc8a802004-10-21 09:35:10 +000014792004-10-21 Miklos Szeredi <miklos@szeredi.hu>
1480
Miklos Szeredi0e70aa72004-10-21 16:24:29 +00001481 * fuse_main() now does not exit on error, rather it returns an
Miklos Szeredi5dc8a802004-10-21 09:35:10 +00001482 error code
1483
Miklos Szeredifb97a1b2004-10-21 09:59:13 +00001484 * Exported __fuse_setup() and __fuse_teardown() functions, which
Miklos Szeredi5dc8a802004-10-21 09:35:10 +00001485 make it easier to implement a custom event loop.
1486
Miklos Szeredifb97a1b2004-10-21 09:59:13 +00001487 * Use daemon() call to background the filesystem after mounting.
1488 This function closes the standard input, output and error and
1489 changes the current working directory to "/".
1490
Miklos Szeredi127d49b2004-10-14 13:33:39 +000014912004-10-14 Miklos Szeredi <miklos@szeredi.hu>
1492
1493 * Released 1.9
1494
Miklos Szeredid45baf42004-10-10 07:56:12 +000014952004-10-09 Miklos Szeredi <miklos@szeredi.hu>
1496
1497 * Don't allow fuse_flush() to be interrupted (bug found by David
1498 Shaw)
1499
Miklos Szeredi1f18db52004-09-27 06:54:49 +000015002004-09-27 Miklos Szeredi <miklos@szeredi.hu>
1501
1502 * Add PID to fuse_context. Patch by Steven James
1503
Miklos Szeredi1eea0322004-09-27 18:50:11 +00001504 * Change file handle type to 'unsigned long' in kernel interface
1505
Miklos Szeredid169f312004-09-22 08:48:26 +000015062004-09-22 Miklos Szeredi <miklos@szeredi.hu>
1507
1508 * A slight API change: fuse_get_context() doesn't need the "fuse"
1509 pointer, but the returned context contains it instead. The
1510 fuse_get() function is not needed anymore, so it's removed.
Miklos Szeredi21d587e2004-09-22 16:47:40 +00001511
1512 * Fix mounting and umounting FUSE filesystem under another FUSE
1513 filesystem by non-root (bug spotted by Valient Gough)
Miklos Szeredie5183742005-02-02 11:14:04 +00001514
Miklos Szeredic2309912004-09-21 13:40:38 +000015152004-09-21 Miklos Szeredi <miklos@szeredi.hu>
1516
1517 * Fix deadlock in case of memory allocation failure. Patch by
1518 Christian Magnusson
Miklos Szeredie5183742005-02-02 11:14:04 +00001519
Miklos Szeredib2cf9562004-09-16 08:42:40 +000015202004-09-16 Miklos Szeredi <miklos@szeredi.hu>
1521
1522 * Check memory allocation failures in libfuse
Miklos Szeredie5183742005-02-02 11:14:04 +00001523
Miklos Szeredi65afea12004-09-14 07:13:45 +000015242004-09-14 Miklos Szeredi <miklos@szeredi.hu>
1525
1526 * Check temporary file creation failure in do_getdir(). Bug
1527 spotted by Terje Oseberg
Miklos Szeredie5183742005-02-02 11:14:04 +00001528
Miklos Szeredi1bf53ee2004-09-13 11:47:59 +000015292004-09-13 Miklos Szeredi <miklos@szeredi.hu>
1530
1531 * Allow "large_read" option for 2.6 kernels but warn of deprecation
Miklos Szeredi09045c32004-09-13 12:00:49 +00001532
1533 * Make requests non-interruptible so race with FORGET is avoided.
1534 This is only a temporary solution
Miklos Szeredi442d9652004-09-13 14:56:57 +00001535
1536 * Support compiling FUSE kernel module on 2.4.x UML kernels
Miklos Szeredie5183742005-02-02 11:14:04 +00001537
Miklos Szeredi8b2d3332004-09-09 08:44:01 +000015382004-09-09 Miklos Szeredi <miklos@szeredi.hu>
1539
1540 * Fix bug in case two FORGETs for the same node are executed in
1541 the wrong order. Bug spotted and endured for months by Franco
1542 Broi, and logfile for solution provided by Terje Oseberg
1543
Miklos Szeredi12085102004-09-02 18:13:57 +000015442004-09-01 Miklos Szeredi <miklos@szeredi.hu>
1545
1546 * Add -D_REENTRANT to the compile flags
1547
1548 * Add documentation of fuse internals by Terje Oseberg
Miklos Szeredie5183742005-02-02 11:14:04 +00001549
Miklos Szeredi22ea3dc2004-08-16 13:29:11 +000015502004-08-16 Miklos Szeredi <miklos@szeredi.hu>
1551
1552 * Change release method to be non-interruptible. Fixes bug
1553 causing missing release() call when program which has opened files
1554 is killed (reported by Franco Broi and David Shaw)
Miklos Szeredie5183742005-02-02 11:14:04 +00001555
Miklos Szeredi891b8742004-07-29 09:27:49 +000015562004-07-29 Miklos Szeredi <miklos@szeredi.hu>
1557
1558 * Add fuse_invalidate() to library API
1559
Miklos Szeredi94ed76a2004-07-26 19:38:45 +000015602004-07-26 Miklos Szeredi <miklos@szeredi.hu>
1561
1562 * Check permissions in setattr if 'default_permissions' flag is
1563 set. Bug spotted by Damjan Lango
1564
Miklos Szeredid66d3942004-07-24 13:47:44 +000015652004-07-24 Miklos Szeredi <miklos@szeredi.hu>
1566
Miklos Szeredi209f5d02004-07-24 19:56:16 +00001567 * 'large_read' mount option removed for 2.6 kernels, since the
1568 default (dynamic read size) is better
1569
1570 * Extend kernel API with file handles. A file handle is returned
1571 by open, and passed to read, write, flush, fsync and release.
1572 This is currently only used for debug output in the library.
Miklos Szeredie5183742005-02-02 11:14:04 +00001573
Miklos Szeredi209f5d02004-07-24 19:56:16 +00001574 * Security changes:
1575
1576 * Change the current directory to the mountpoint before checking
1577 the permissions and mount filesystem on "."
1578
1579 * By default don't modprobe the fuse module for non-root. The old
1580 behavior can be restored with the '--enable-auto-modprobe' flag of
1581 ./configure
1582
1583 * By default don't allow shared writable mappings for non-root.
1584 The old behavior can be restored with the 'user_mmap=1' module
1585 parameter
Miklos Szeredid66d3942004-07-24 13:47:44 +00001586
Miklos Szeredibd7661b2004-07-23 17:16:29 +000015872004-07-23 Miklos Szeredi <miklos@szeredi.hu>
1588
1589 * Clean up mount option passing to fusermount and to fuse_new()
1590 BEWARE: this changes the userspace API slightly, and the command
1591 line usage of programs using fuse_main()
Miklos Szeredie5183742005-02-02 11:14:04 +00001592
Miklos Szeredi58865372004-07-20 14:22:26 +000015932004-07-20 Miklos Szeredi <miklos@szeredi.hu>
1594
1595 * Optimize reading under 2.6 kernels by issuing multiple page
1596 asynchronous read requests
Miklos Szeredie5183742005-02-02 11:14:04 +00001597
Miklos Szeredi84ba0f42004-07-18 11:32:59 +000015982004-07-18 Miklos Szeredi <miklos@szeredi.hu>
1599
1600 * Only use redirty_page_for_writepage() for kernels >= 2.6.6
Miklos Szeredie5183742005-02-02 11:14:04 +00001601
Miklos Szeredi069c9502004-07-16 16:17:02 +000016022004-07-16 Miklos Szeredi <miklos@szeredi.hu>
1603
1604 * Separate directory entry and inode attribute validity timer
1605
1606 * New write semaphore to stop page writeback during truncate
1607
1608 * Fsync now waits for all writes to complete before sending the
1609 request
1610
1611 * Optimization: if a page is completely written by
1612 fuse_commit_write(), clear the dirty flag and set the uptodate
1613 flag for that page
1614
Miklos Szeredie7d5d7d2004-07-16 18:27:50 +00001615 * Some memory cleanup at exit
1616
Miklos Szeredi2529ca22004-07-13 15:36:52 +000016172004-07-13 Miklos Szeredi <miklos@szeredi.hu>
1618
1619 * Add FUSE_HARD_REMOVE flag, and '-i' option to fuse main, which
Miklos Szerediad83d072004-07-13 20:23:03 +00001620 disable the "hide if open" behavior of unlink/rename.
1621
1622 * If temporary buffer allocation fails in raw read, fall back to a
1623 smaller buffer
Miklos Szeredie5183742005-02-02 11:14:04 +00001624
Miklos Szeredi73798f92004-07-12 15:55:11 +000016252004-07-12 Miklos Szeredi <miklos@szeredi.hu>
1626
1627 * Fix bug in do_open() in libfuse: open count was incremented
1628 after the reply is sent so it could race with unlink/forget and
1629 cause an abort.
Miklos Szeredie5183742005-02-02 11:14:04 +00001630
Miklos Szeredi015fe702004-07-12 11:52:24 +000016312004-07-08 Miklos Szeredi <miklos@szeredi.hu>
1632
1633 * When performing create or remove operation, refresh the parent's
1634 attributes on next revalidate, as i_nlink (and maybe size/time)
1635 could be inacurate.
1636
1637 * Use redirty_page_for_writepage() in fuse_writepage() for skipped
1638 pages (2.6 only)
1639
1640 * Set set_page_dirty address space operation (2.6 only)
1641
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016422004-07-06 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi25385bb2004-07-06 22:27:36 +00001643
1644 * Minor fix in read: print debug info even if read size is zero
1645
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016462004-07-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi58615e02004-07-04 21:21:08 +00001647
1648 * Fix race between truncate and writepage (fsx-linux now runs
1649 without error)
1650
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016512004-07-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szerediad051c32004-07-02 09:22:50 +00001652
1653 * Fix kernel hang on mkfifo under 2.4 kernels (spotted and patch
1654 by Mattias Wadman)
1655
1656 * Added option for direct read/write (-r)
1657
1658 * Fix revalidate time setting for newly created inodes
1659
Miklos Szerediacb4d362004-07-02 16:20:45 +00001660 * Remove uid==0 check for '-x' option in fusermount (kernel checks
1661 this)
1662
1663 * fuse_main() only installs handlers for signals (out of INT, HUP,
1664 TERM, PIPE), for which no handler has yet been installed
1665
1666 * Add module option 'user_allow_other' which if set to non-zero
1667 will allow non root user to specify the 'allow_other' mount option
1668 ('-x' option of fusermount)
1669
Miklos Szeredi014d7d22004-07-02 21:22:37 +00001670 * Fix deadlock between page writeback completion and truncate
1671 (bug found by Valient Gough with the fsx-linux utility)
1672
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016732004-07-01 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szerediad051c32004-07-02 09:22:50 +00001674
1675 * Change passing fuse include dir to 2.6 kernel make system more
Miklos Szerediacb4d362004-07-02 16:20:45 +00001676 robust (fixes compile problems seen on SuSE 9.1 with updated 2.6
1677 kernel)
Miklos Szerediad051c32004-07-02 09:22:50 +00001678
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016792004-06-30 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi556d03d2004-06-30 11:13:41 +00001680
1681 * Acquire inode->i_sem before open and release methods to prevent
1682 concurrent rename or unlink operations.
1683
Miklos Szeredi65cf7c72004-06-30 11:34:56 +00001684 * Make __fuse_read_cmd() read only one command. This allows
1685 multiplexing the fuse file descriptor with other event sources
1686 using select() or poll() (patch by Jeff Harris)
1687
1688 * Export 'exited' flag with __fuse_exited() (patch by Jeff Harris)
1689
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016902004-06-27 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi71e9f862004-06-28 16:52:16 +00001691
1692 * Fix file offset wrap around at 4G when doing large reads
1693
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016942004-06-24 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi1ea9c962004-06-24 21:00:00 +00001695
Miklos Szeredi9a31cca2004-06-26 21:11:25 +00001696 * Fix memory leak in open (Valient Gough)
1697
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016982004-06-24 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi9a31cca2004-06-26 21:11:25 +00001699
Miklos Szeredi1ea9c962004-06-24 21:00:00 +00001700 * Add "close after delete" support to libfuse (patch by Valient
1701 Gough)
1702
1703 * Cancel all worker threads before exit in multithreaded mode
1704
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017052004-06-23 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie79dc7e2004-06-23 05:57:30 +00001706
1707 * Fix locking bugs
Miklos Szeredib3210582004-06-23 13:54:33 +00001708
1709 * Don't send reply to RELEASE
Miklos Szeredicb264512004-06-23 18:52:50 +00001710
1711 * Work with newer libtool (1.5a)
1712
1713 * Check for st_atim member of struct stat
Miklos Szeredie5183742005-02-02 11:14:04 +00001714
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017152004-06-22 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredid3dd2d52004-06-22 18:46:02 +00001716
1717 * No request allocation needed on inode and file release
Miklos Szeredie5183742005-02-02 11:14:04 +00001718
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017192004-06-21 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi2778f6c2004-06-21 09:45:30 +00001720
1721 * Fix possible inode leak in userspace in case of unfinished
1722 lookup/mknod/mkdir/symlink/link operation.
Miklos Szeredie5183742005-02-02 11:14:04 +00001723
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017242004-06-20 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredied62d862004-06-20 08:57:39 +00001725
1726 * Fix some races and cleanups in fuse_read_super()
Miklos Szeredie5183742005-02-02 11:14:04 +00001727
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017282004-06-19 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi7eafcce2004-06-19 22:42:38 +00001729
1730 * Requests are allocated at open time
Miklos Szeredie5183742005-02-02 11:14:04 +00001731
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017322004-06-03 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi203afbf2004-06-03 13:21:08 +00001733
1734 * Build shared library as well as static (using libtool)
1735
1736 * Change FUSE_MINOR_VERSION from 1 to 0. I know it's illegal but
1737 there has not been a release with the previous minor number, and I
1738 hope nobody is using it for anything.
Miklos Szerediff875352004-06-03 13:52:40 +00001739
1740 * Change fuse_main(), so that default behavior is to go into
1741 background if mount is successful. '-f' and '-d' options disable
1742 backgrounding. This fixes the "Why does my FUSE daemon hang?"
1743 newbie complaint.
Miklos Szeredi63b8c1c2004-06-03 14:45:04 +00001744
1745 * Cache ENOSYS (function not implemented) errors on *xattr, flush
1746 and fsync
Miklos Szeredi152f29e2004-06-03 17:52:32 +00001747
1748 * Don't call getdir method from open() only from first readdir().
1749 Open is sometimes just used to store the current directory
1750 (e.g. find)
Miklos Szeredie5183742005-02-02 11:14:04 +00001751
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017522004-05-18 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie2e4ac22004-05-18 08:45:28 +00001753
1754 * Added flush() call
Miklos Szeredie5183742005-02-02 11:14:04 +00001755
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017562004-05-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi689f5632004-05-04 08:49:16 +00001757
1758 * Extended attributes support for 2.4 (patch by Cody Pisto)
Miklos Szeredie5183742005-02-02 11:14:04 +00001759
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017602004-04-20 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredid30a0f22004-04-20 08:25:43 +00001761
1762 * Fixed parser with modversions (Mattias Wadman)
Miklos Szeredie5183742005-02-02 11:14:04 +00001763
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017642004-04-19 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi8ec48ec2004-04-19 10:24:41 +00001765
1766 * Added mount option parser to 2.4 build
Miklos Szeredie5183742005-02-02 11:14:04 +00001767
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017682004-04-13 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi87f30a92004-04-13 10:49:54 +00001769
1770 * Replaced binary mount data with text options
1771
1772 * Show FUSE specific mount options in /proc/mounts
1773
1774 * Check in fuse.h whether _FILE_OFFSET_BITS is set to 64
1775
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017762004-04-09 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredic26c14d2004-04-09 17:48:32 +00001777
1778 * Check some limits so userspace won't get too big requests
1779
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017802004-04-05 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi2ac5e2a2004-04-05 11:24:24 +00001781
1782 * Kill compile warning
1783
1784 * Upgraded user-mount patch for 2.6.5
1785
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017862004-04-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi851948c2004-04-02 14:58:22 +00001787
1788 * Add detection of user-mode-linux to configure
1789
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017902004-03-31 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi03cebae2004-03-31 10:19:18 +00001791
1792 * fixed zero size case for getxattr and listxattr
1793
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017942004-03-30 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi98667e22004-03-30 07:24:29 +00001795
1796 * new fusermount flag '-z': lazy unmount, default is not lazy
1797
Miklos Szeredi3ed84232004-03-30 15:17:26 +00001798 * Extended attributes operations added (getxattr, setxattr,
1799 listxattr, removexattr)
1800
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018012004-03-25 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi77f39942004-03-25 11:17:52 +00001802
1803 * If filesystem doesn't define a statfs operation, then an
1804 all-zero default statfs is returned instead of ENOSYS
1805
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018062004-03-24 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi4df9cf22004-03-24 09:19:27 +00001807
1808 * Add FS_BINARY_MOUNTDATA filesystem flag for kernels > 2.6.4
1809
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018102004-03-09 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi254d5ed2004-03-02 11:11:24 +00001811
Miklos Szeredi8af63ae2004-03-09 10:54:17 +00001812 * Fix for uClinux (Christian Magnusson)
1813
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018142004-03-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi8af63ae2004-03-09 10:54:17 +00001815
Miklos Szeredi18c1e4d2004-03-02 16:18:30 +00001816 * fuse_main() adds "-n progname" to the fusermount command line
Miklos Szeredie5183742005-02-02 11:14:04 +00001817
Miklos Szeredi254d5ed2004-03-02 11:11:24 +00001818 * More kernel interface changes:
1819
1820 * Lookup/getattr return cache timeout values
1821
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018222004-02-25 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie970f302004-02-25 08:39:42 +00001823
1824 * Clean up option parsing in fuse_main()
1825
Miklos Szeredi33c319c2004-02-25 09:19:29 +00001826 * Added fuse_get() function which returns the fuse object created
1827 by fuse_main()
1828
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018292004-02-20 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredib5958612004-02-20 14:10:49 +00001830
Miklos Szeredic40748a2004-02-20 16:38:45 +00001831 * removed old way of mounting (fusermount mountpoint program)
1832
Miklos Szeredib5958612004-02-20 14:10:49 +00001833 * more kernel interface changes:
1834
1835 * added nanosecond precision to file times
1836
Miklos Szeredic40748a2004-02-20 16:38:45 +00001837 * removed interface version from mount data
1838
1839 * added /proc/fs/fuse/version which contains MAJOR.MINOR
1840
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018412004-02-19 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi18e75e42004-02-19 14:23:27 +00001842
1843 * statfs library API changed to match other methods. Since this
1844 is not backward compatible FUSE_MAJOR_VERSION is changed to 2
1845
Miklos Szeredi76f65782004-02-19 16:55:40 +00001846 * kernel interface changes follow:
1847
1848 * statfs changed to 64 bits, added 'bavail' field
1849
1850 * add generation number to lookup result
1851
1852 * optimized mknod/mkdir/symlink/link (no separate lookup is
1853 needed)
1854
1855 * rdev size increased to 32 bits for mknod
1856
1857 * kernel interface version changed to 3.1
Miklos Szeredie5183742005-02-02 11:14:04 +00001858
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018592004-02-18 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredifa39e902004-02-18 13:29:36 +00001860
1861 * user-mount upgraded for 2.6.3 kernel
Miklos Szeredie5183742005-02-02 11:14:04 +00001862
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018632004-02-17 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi69cc79a2004-02-17 08:57:29 +00001864
1865 * Added user-mount.2.6.2-rc3.patch
1866
1867 * Add FS_SAFE flag to fuse filesystem
1868
1869 * fusermount should allow (un)mounting for non-root even if not
1870 suid-root
Miklos Szeredie5183742005-02-02 11:14:04 +00001871
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018722004-02-12 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi4c7f7622004-02-12 13:41:30 +00001873
1874 * Remove MS_PERMISSION mount flag (that means something else now)
Miklos Szeredie5183742005-02-02 11:14:04 +00001875
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018762004-02-10 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi9a2b08d2004-02-10 09:36:07 +00001877
1878 * Added check for i_size_read/write functions to configure.in
1879 (patch by Valient Gough)
1880
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018812004-02-06 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi377b2ea2004-02-06 09:48:51 +00001882
1883 * Fixed writing >= 2G files
Miklos Szeredif58cc612004-02-06 13:52:00 +00001884
1885 * Check file size on open (with generic_file_open())
Miklos Szeredid1199f82004-02-06 15:29:22 +00001886
1887 * Readpage calls flush_dcache_page() after storing data
1888
1889 * Use i_size_read/write for accessing inode->i_size
Miklos Szeredi89b86af2004-02-06 17:02:08 +00001890
1891 * Make loopback mount of a fuse file work
Miklos Szeredie5183742005-02-02 11:14:04 +00001892
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018932004-02-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi88124792004-02-04 11:06:17 +00001894
1895 * Released 1.1
Miklos Szeredie5183742005-02-02 11:14:04 +00001896
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018972004-01-29 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi72f6a932004-01-29 11:29:18 +00001898
1899 * Properly check if the inode exists in fuse_invalidate
Miklos Szeredie5183742005-02-02 11:14:04 +00001900
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019012004-01-27 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szerediedf26632004-01-27 14:54:47 +00001902
1903 * Added -q option for fusermount
1904
1905 * fuse_unmount() now uses -q option of fusermount, so no error is
1906 printed if the cause of the program exit is that the filesystem
1907 has already been unmounted
1908
Miklos Szeredif4f8b892004-01-27 17:04:59 +00001909 * Fix i_nlink correctness after rmdir/unlink
1910
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019112004-01-26 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi307242f2004-01-26 11:28:44 +00001912
Miklos Szeredib1158392004-01-26 14:43:12 +00001913 * Released 1.1-pre2
1914
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019152004-01-26 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredib1158392004-01-26 14:43:12 +00001916
Miklos Szeredi307242f2004-01-26 11:28:44 +00001917 * Fix typo (thanks Marcos Dione)
Miklos Szeredib1158392004-01-26 14:43:12 +00001918
1919 * Compile fixes for 2.4 kernels
Miklos Szeredie5183742005-02-02 11:14:04 +00001920
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019212004-01-23 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi307242f2004-01-26 11:28:44 +00001922
1923 * Fix CONFIG_MODVERSIONS compile on 2.6
Miklos Szeredie5183742005-02-02 11:14:04 +00001924
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019252004-01-22 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi307242f2004-01-26 11:28:44 +00001926
1927 * Write all pending data before a RELEASE operation
1928
1929 * Suppress 'Bad file descriptor' warning on exit
1930
1931 * Replaced fusermount option '-d xxx' with '-n xxx' so it doesn't
Miklos Szeredib1158392004-01-26 14:43:12 +00001932 get confused with '-d' of fuse_main() (sorry about this change)
Miklos Szeredi307242f2004-01-26 11:28:44 +00001933
Miklos Szeredib1158392004-01-26 14:43:12 +00001934 * New fusermount option '-l' which enables big reads. Big reads
1935 are now disabled by default.
Miklos Szeredi307242f2004-01-26 11:28:44 +00001936
1937 * fuse_main() can accept fusermount arguments after a '--'
1938
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019392004-01-19 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie815c032004-01-19 18:20:49 +00001940
1941 * Support for exporting filesystem over NFS (see README.NFS)
1942
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019432004-01-14 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi7c35cf92004-01-14 16:56:49 +00001944
1945 * Support non-blocking writepage on 2.6. This makes FUSE behave
1946 much more nicely in low-memory situations
1947
1948 * Fix 32-bit dev handling in getattr and mknod for 2.6 kernels.
1949 (Note: the mknod method does not yet use 32bit device number)
Miklos Szeredie5183742005-02-02 11:14:04 +00001950
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019512004-01-13 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie8663f32004-01-13 15:33:12 +00001952
1953 * Code cleanups
1954
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019552004-01-07 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi4b7abe32004-01-07 16:49:12 +00001956
1957 * Released 1.1-pre1
1958
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019592004-01-06 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredif85ab242004-01-07 12:16:45 +00001960
1961 * Integrated 2.6 kernel support patch by Michael Grigoriev
1962
1963 * Improvements and cleanups for 2.6 kernels
1964
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019652004-01-05 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi7ffb8cf2004-01-05 15:07:12 +00001966
Miklos Szeredie5183742005-02-02 11:14:04 +00001967 * Added -d option to fusermount
Miklos Szeredi7ffb8cf2004-01-05 15:07:12 +00001968
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019692003-12-15 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi2f3d9402003-12-15 12:11:33 +00001970
1971 * Added major+minor version to library API, and minor version to
1972 kernel API
1973
David McNab7a19caf2003-12-13 02:05:46 +000019742003-12-13 David McNab <david@rebirthing.co.nz>
1975
1976 * Implemented fsync support in examples/example.py
1977
1978 * Implemented 'fsync' and 'statfs' methods in python
1979 interface
1980
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019812003-12-12 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie4cf7332003-12-12 11:53:31 +00001982
Miklos Szeredie5183742005-02-02 11:14:04 +00001983 * Make it compile on 2.4.19.
Miklos Szeredie4cf7332003-12-12 11:53:31 +00001984
Miklos Szeredi5e43f2c2003-12-12 14:06:41 +00001985 * Add fsync operation (write file failed on xemacs & vi)
Miklos Szeredie4cf7332003-12-12 11:53:31 +00001986
David McNab8bf62632003-12-11 22:49:22 +000019872003-12-12 David McNab <david@rebirthing.co.nz>
1988
1989 * Added distutils support to the python module, as per standard
1990 python development practice
1991
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019922003-12-11 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi874d95d2003-12-11 14:27:57 +00001993
1994 * Add file locking for mount/unmount (based on patch by Valient
1995 Gough)
1996
19972003-12-11 David McNab <david@rebirthing.co.nz>
1998
1999 * Python filesystem - was broken with python2.3, now fixed:
2000 - changed PyTuple_* calls to PySequence_*, because os.lstat
2001 is no longer returning a pure tuple
2002 - changed PyInt_Check() calls to also call PyLong_Check,
2003 to cover for cases (eg os.lstat) where longs are returned
2004 - Added support for file 'release' handling, which IMO is
2005 essential since this signals to a FS that writes to a file
2006 are complete (and therefore the file can now be disposed of
2007 meaningfully at the python filesystem's discretion)
2008 - Added '__init__' handler to base Fuse class, which allows
2009 your Python class to know the mountpoint and mount args,
2010 as attributes myfs.mountpoint, myfs.optlist, myfs.optdict
Miklos Szeredie5183742005-02-02 11:14:04 +00002011
Miklos Szeredi874d95d2003-12-11 14:27:57 +00002012 * General:
2013 - added 'mount.fuse' script (in util/ dir), which is meant to be
2014 symlinked from /sbin, and which allows FUSE filesystems to
2015 be mounted with the 'mount' command, and listed in fstab;
2016 also, mount arguments get passed to your filesystem
2017
2018
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020192003-11-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredif27ec7d2003-11-04 13:46:32 +00002020
2021 * Fix kernel version detection (again). Bugreport by Peter Levart
2022
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020232003-11-03 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi36ca5562003-11-03 19:32:14 +00002024
2025 * Applied read combining patch by Michael Grigoriev (tested by
2026 Valient Gough and Vincent Wagelaar)
2027
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020282003-10-22 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredif08ace02003-10-22 11:11:57 +00002029
2030 * Mtab handling fix in fusermount by "Valient Gough" (SF patch
2031 #766443)
Miklos Szeredie5183742005-02-02 11:14:04 +00002032
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020332003-10-13 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi0e535082003-10-13 10:08:06 +00002034
2035 * Error code fixes in kernel module
Miklos Szeredie5183742005-02-02 11:14:04 +00002036
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020372003-10-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi27af48b2003-10-04 17:31:38 +00002038
2039 * kernel version detection fix
2040
2041 * fusermount now uses "lazy" umount option
2042
2043 * fusermount can use modprobe with module-init-tools
2044
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020452003-09-08 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredida4e4862003-09-08 11:14:11 +00002046
2047 * Integrated caching patch by Michael Grigoriev
2048
Miklos Szeredida4e4862003-09-08 11:14:11 +00002049 * Added "Filesystems" file with descriptions of projects using
2050 FUSE
2051
Miklos Szeredi02ceb112003-09-08 13:52:25 +00002052 * Added patch by Michael Grigoriev to allow compliation of FUSE
2053 kernel module for 2.6 kernels
2054
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020552003-06-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi84838472003-06-02 06:12:27 +00002056
2057 * And another spec-file fix by Achim Settelmeier
2058
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020592003-05-26 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi21c282b2003-05-26 07:12:57 +00002060
2061 * Spec-file fix by Achim Settelmeier
2062
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020632003-03-10 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi79b461a2003-03-10 09:35:34 +00002064
Miklos Szerediac361172004-11-02 19:14:14 +00002065 * Fix umount oops (found by Samuli Kärkkäinen)
Miklos Szeredi79b461a2003-03-10 09:35:34 +00002066
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020672003-03-05 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi941ae4c2003-03-05 08:29:58 +00002068
2069 * Merge of fuse_redhat.spec and fuse.spec by Achim Settelmeier
2070
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020712003-03-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredia9b2f262003-03-04 09:37:20 +00002072
2073 * Updated fuse.spec file (Achim Settelmeier)
2074
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020752003-02-19 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredic0226bb2003-02-19 16:05:06 +00002076
2077 * Version 1.0 released
2078
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020792003-02-12 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredifa84e0d2003-02-13 09:53:33 +00002080
2081 * SuSE compilation fix by Juan-Mariano de Goyeneche
2082
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020832002-12-10 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredic8ba2372002-12-10 12:26:00 +00002084
2085 * The release() VFS call is now exported to the FUSE interface
2086
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020872002-12-05 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi0f48a262002-12-05 14:23:01 +00002088
2089 * 64 bit file offset fixes in the fuse kernel module
2090
2091 * Added function 'fuse_exit()' which can be used to exit the main
2092 loop
2093
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020942002-12-03 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi5f054812002-12-03 18:45:21 +00002095
2096 * Added _FILE_OFFSET_BITS=64 define to fuse.h. Note, that this is
2097 an incompatible interface change.
2098
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020992002-10-28 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi6bf8b682002-10-28 08:49:39 +00002100
2101 * Portablility fix (bug reported by C. Chris Erway)
2102
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021032002-10-25 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredid6e9f882002-10-25 11:40:14 +00002104
2105 * Use Mark Glines' fd passing method for default operation instead
2106 of old reexec
2107
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021082002-10-22 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi60c23522002-10-24 09:19:43 +00002109
Miklos Szeredi5e5d61f2002-10-24 11:50:33 +00002110 * fix "Stale NFS file handle" bug caused by changes in 2.4.19
2111
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021122002-10-22 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi5e5d61f2002-10-24 11:50:33 +00002113
Miklos Szeredi60c23522002-10-24 09:19:43 +00002114 * fix incompatiblity with Red Hat kernels, with help from Nathan
2115 Thompson-Amato.
2116
Mark Glines65ba2192002-04-18 14:41:48 +000021172002-04-18 Mark Glines <mark@glines.org>
2118
2119 * added an alternative to fuse_mount(), called
2120 fuse_mount_ioslave(), which does not need to reexec the
2121 FUSE program.
2122 * added a small helper util needed by fuse_mount_ioslave().
2123
Mark Glines220635a2002-03-17 07:01:14 +000021242002-03-16 Mark Glines <mark@glines.org>
2125
2126 * use struct fuse_statfs everywhere possible to avoid problems
2127 with the headerfiles changing struct statfs member sizes
2128
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021292002-03-01 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi081f3c22002-03-01 07:47:35 +00002130
2131 * Another RPM spec file for RedHat >= 7 by Ian Pilcher
2132
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021332002-01-14 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredif782fc42002-01-14 08:48:46 +00002134
2135 * RPM support by Achim Settelmeier
2136
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021372002-01-09 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi4b2bef42002-01-09 12:23:27 +00002138
Miklos Szerediddc862a2002-01-09 13:46:10 +00002139 * Version 0.95 released
Miklos Szeredie5183742005-02-02 11:14:04 +00002140
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021412002-01-09 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szerediddc862a2002-01-09 13:46:10 +00002142
Miklos Szeredi4b2bef42002-01-09 12:23:27 +00002143 * Revaidate all path components not just the last, this means a
2144 very small performance penalty for being more up-to-date.
2145
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021462002-01-08 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi4b2bef42002-01-09 12:23:27 +00002147
2148 * Update and fix python interface
2149
Mark Glinesd84b39a2002-01-07 16:32:02 +000021502002-01-07 Mark Glines <mark@glines.org>
Miklos Szeredie5183742005-02-02 11:14:04 +00002151
Mark Glinesd84b39a2002-01-07 16:32:02 +00002152 * Added statfs() support to kernel, lib, examples, and perl!
2153
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021542001-12-26 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi46a46dc2002-01-08 09:55:14 +00002155
2156 * Better cross compilation support
2157
2158 * Ported to Compaq IPAQ
2159
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021602001-12-20 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie5183742005-02-02 11:14:04 +00002161
Miklos Szeredife25def2001-12-20 15:38:05 +00002162 * Added function fuse_get_context() to library API (inspired by
Miklos Szeredie5183742005-02-02 11:14:04 +00002163 patch from Matt Ryan)
2164
Miklos Szeredife25def2001-12-20 15:38:05 +00002165 * Added flags to fusermount and to kernel interface to control
2166 permission checking
Miklos Szeredi8cffdb92001-11-09 14:49:18 +00002167
Miklos Szeredife25def2001-12-20 15:38:05 +00002168 * Integrated fuse_set_operations() into fuse_new()
2169
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021702001-12-08 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredife25def2001-12-20 15:38:05 +00002171
2172 * Applied header protection + extern "C" patch by Roland
2173 Bauerschmidt
2174
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021752001-12-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredife25def2001-12-20 15:38:05 +00002176
Miklos Szeredie5183742005-02-02 11:14:04 +00002177 * Added perl bindings by Mark Glines
Miklos Szeredife25def2001-12-20 15:38:05 +00002178
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021792001-11-21 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredife25def2001-12-20 15:38:05 +00002180
2181 * Cleaned up way of mounting simple filesystems.
2182
2183 * fuse_main() helper function added
2184
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021852001-11-18 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie5183742005-02-02 11:14:04 +00002186
Miklos Szeredife25def2001-12-20 15:38:05 +00002187 * Optimized read/write operations, so that minimal copying of data
2188 is done
2189
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021902001-11-14 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredife25def2001-12-20 15:38:05 +00002191
2192 * Python bindings by Jeff Epler added
Miklos Szeredi838c14f2001-11-14 08:16:20 +00002193
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021942001-11-13 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi838c14f2001-11-14 08:16:20 +00002195
2196 * Fixed vfsmount reference leak in fuse_follow_link
2197
2198 * FS blocksize is set to PAGE_CACHE_SIZE, blksize attribute from
2199 userspace is ignored
2200
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000022012001-11-09 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi838c14f2001-11-14 08:16:20 +00002202
Miklos Szeredife25def2001-12-20 15:38:05 +00002203 * Started ChangeLog