blob: acee04020a4fee73d2dd24f832776d27314defc9 [file] [log] [blame]
Miklos Szeredifa440772006-09-02 09:51:08 +000012006-09-01 Miklos Szeredi <miklos@szeredi.hu>
2
3 * Fix recursive lock bug in interrupt handling
4
5 * Add utimes() method to highlevel interface, which supports
6 setting times with nanosecond resolution
7
Miklos Szeredi63d3c402006-08-18 16:38:08 +000082006-08-18 Miklos Szeredi <miklos@szeredi.hu>
9
10 * kernel: fix page leak if fuse_readpages() failed in it's
11 initialization. Bug found and original patch from Alexander
12 Zarochentsev
13
Miklos Szeredi3ded1a32006-08-18 18:43:50 +000014 * For linux kernels >=2.6.18 (2.6.19 if using the fuse module from
15 the kernel tree) the statfs method will receive the path within
Miklos Szeredid2bda142006-08-19 09:26:16 +000016 the filesystem on which the stat(v)fs syscall was called
Miklos Szeredi3ded1a32006-08-18 18:43:50 +000017
Miklos Szeredi543087d2006-08-18 19:26:23 +000018 * fusermount: try to modprobe fuse module if invoked by root and
19 unable to open device. This is needed with udev, since the device
20 node will be created only when the module is inserted, hence
21 module autoloading won't work. Reported by Szakacsits Szabolcs
22
Miklos Szeredi9a5c11d2006-07-30 17:33:40 +0000232006-07-30 Miklos Szeredi <miklos@szeredi.hu>
24
25 * fusermount: if selinux is active, restore the original file's
26 security context in unmount_rename(). Redhat bugzilla id 188561.
27 Patch from Yves Perrenoud
28
29 * Add POSIX file locking operation to high level library
30
Miklos Szerediad519562006-07-31 11:07:40 +000031 * Initialize context for unlink of hidden files on umount. Bug
32 reported by Tim Stoakes
33
Miklos Szeredi9a5c11d2006-07-30 17:33:40 +0000342006-07-14 Miklos Szeredi <miklos@szeredi.hu>
35
36 * Multiple release() calls can race with each other, resulting in
37 the hidden file being deleted before the last release finishes.
38 Bug found and patch tested by Mark Huijgen
39
Miklos Szeredi3b0e4fa2006-07-14 10:13:16 +0000402006-07-05 Miklos Szeredi <miklos@szeredi.hu>
41
Miklos Szeredi9a5c11d2006-07-30 17:33:40 +000042 * fusermount: if /dev/fuse doesn't exist, suggest modprobing fuse;
43 this makes sense on systems using udev. Reported by Szakacsits
44 Szabolcs
Miklos Szeredi3b0e4fa2006-07-14 10:13:16 +000045
Miklos Szeredi91762cd2006-06-29 14:38:35 +0000462006-06-29 Miklos Szeredi <miklos@szeredi.hu>
47
48 * Released 2.6.0-pre3
49
502006-06-29 Miklos Szeredi <miklos@szeredi.hu>
51
52 * Support in kernel module for file locking and interruption. The
53 same functionality is available in official kernels >= 2.6.18
54
Miklos Szeredib052a1a2006-06-28 14:51:20 +0000552006-06-28 Miklos Szeredi <miklos@szeredi.hu>
56
57 * Add POSIX file locking support
58
59 * Add request interruption
60
Miklos Szeredi55a84102006-06-06 10:16:38 +0000612006-06-06 Miklos Szeredi <miklos@szeredi.hu>
62
63 * Add missing pthread_rwlock_destroy(). Patch from Remy Blank
64
Miklos Szeredi9dedb702006-06-06 09:48:30 +0000652006-06-05 Remy Blank <remy.blank@pobox.com>
66
67 * lib: canonicalize mount point in fuse_helper_opt_proc() so that
68 unmounting succeeds even if mount point was relative.
69
Csaba Henkd021ce42006-06-03 23:04:18 +0000702006-06-04 Csaba Henk <csaba.henk@creo.hu>
71
72 * lib: fix emergency umount in helper.c when malloc fails.
73 (The way it was done would end up in a segfault.)
74
Csaba Henk4f5c7b42006-06-01 14:19:17 +0000752006-06-01 Csaba Henk <csaba.henk@creo.hu>
76
77 * lib: adjust threading related compiler flags.
78 Switch to "-pthread" from "-lpthread" as that's the preferred
79 one on several platforms. Consulted with Terrence Cole and
80 Miklos Szeredi
Miklos Szeredi06908f42006-05-16 14:39:47 +000081
Miklos Szeredi9d3b7da2006-05-08 12:35:04 +0000822006-05-08 Miklos Szeredi <miklos@szeredi.hu>
83
84 * lib: search fusermount in installation directory (bindir) as
85 well as in PATH.
86
Miklos Szeredi2512aaa2006-05-03 14:54:59 +0000872006-05-03 Miklos Szeredi <miklos@szeredi.hu>
88
89 * lib: fix compilation if CLOCK_MONOTONIC is not defined.
90 Reported by Christian Magnusson
91
Csaba Henk2efe48f2006-04-22 22:46:52 +0000922006-04-23 Csaba Henk <csaba.henk@creo.hu>
93
94 * lib: make FreeBSD mount routine recognize if kernel features
95 backgrounded init and if it does, run the mount util in foreground
96 (similarly to Linux)
97
Miklos Szeredi5fe07d62006-04-21 14:09:28 +0000982006-04-21 Miklos Szeredi <miklos@szeredi.hu>
99
100 * kernel: fix fput deadlock fix, the lockless solution could lead
101 to "VFS: busy inodes after umount..."
102
103 * kernel: fix race between checking and setting file->private_data
104 for the device. Found by Al Viro
105
1062006-04-11 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi7a2814c2006-04-12 10:41:50 +0000107
108 * kernel: remove request pool, instead allocate requests on
109 demand. Account the number of background requests, and if they go
110 over a limit, block the allocation of new requests.
111
112 * kernel: fix deadlock if backgrounded request holds the last
113 reference to the super block
114
115 * kernel: don't use fuse_reset_request() during direct I/O
116
Csaba Henkbaa49d22006-04-06 00:12:44 +00001172006-04-06 Csaba Henk <csaba.henk@creo.hu>
118
119 * lib: Let FreeBSD mount option parsing routine recognize "no"
120 prefixes for FUSE specific options as well
121
Miklos Szeredid0a777a2006-04-05 07:18:00 +00001222006-04-01 Miklos Szeredi <miklos@szeredi.hu>
123
124 * lib: Add missing rwlock initialization. Patch by Ryan Bradetich
125
Miklos Szeredi6f385412006-03-17 15:05:40 +00001262006-03-17 Miklos Szeredi <miklos@szeredi.hu>
127
128 * API changes:
129
130 * fuse_main(), fuse_setup() and fuse_new() have an additionl
131 user_data parameter
132
133 * fuse_mount() returns a 'struct fuse_chan' pointer instead of a
134 file descriptor
135
136 * fuse_unmount() receives a 'struct fuse_chan' pointer. It
137 destroys the given channel
138
139 * fuse_teardown() no longer has a file descriptor parameter
140
141 * new exported functions: fuse_session_remove_chan(),
142 fuse_get_session(), fuse_daemonize()
143
Miklos Szeredi8d975f62006-03-17 15:56:05 +0000144 * fuse_chan_recv() may now return a new channel which will be used
145 to send the reply
146
Miklos Szeredif51e43f2006-03-16 14:19:25 +00001472006-03-16 Miklos Szeredi <miklos@szeredi.hu>
148
Miklos Szeredi9db31dc2006-03-16 14:43:28 +0000149 * Released 2.6.0-pre2
150
1512006-03-16 Miklos Szeredi <miklos@szeredi.hu>
152
Miklos Szeredif51e43f2006-03-16 14:19:25 +0000153 * Don't unmount if already unmounted. This fixes a problem seen
154 in the following situation: Lazy unmount a busy filesystem; Mount
155 a new one in top; When the first finally unmounts, the second also
156 unmounts. Reported by Franco Broi
157
Miklos Szeredi2c1381f2006-03-15 20:34:10 +00001582006-03-15 Miklos Szeredi <miklos@szeredi.hu>
159
160 * lowlevel lib: use indirect function calls instead of a
161 switch/case construct. Besides increased efficiency it helps
162 maintainability & readability too. Patch from Florin Malita
163
Miklos Szeredi67d26d42006-03-13 17:39:56 +00001642006-03-13 Miklos Szeredi <miklos@szeredi.hu>
165
166 * kernel: replace global spinlock with a per-connection spinlock
167
Miklos Szeredi87c77932006-03-10 10:18:20 +00001682006-03-10 Miklos Szeredi <miklos@szeredi.hu>
169
170 * Fix source compatibility breakage for fuse_unmount(). Report
171 from Yura Pakhuchiy
172
Miklos Szeredi9caf0fe2006-03-02 19:55:56 +00001732006-03-02 Miklos Szeredi <miklos@szeredi.hu>
174
175 * Fix O_ASYNC handling in fuse_dev_release(). From Jeff Dike
176
Miklos Szeredi5d9ce362006-03-01 12:10:13 +00001772006-03-01 Miklos Szeredi <miklos@szeredi.hu>
178
179 * Add O_ASYNC and O_NONBLOCK support to FUSE device. Patch by
180 Jeff Dike
181
182 * Renamed fuse_chan_receive() to fuse_chan_recv() and changed
183 interface to return -errno in case of error.
184
Csaba Henkee588c02006-03-01 09:40:35 +00001852006-03-01 Csaba Henk <csaba.henk@creo.hu>
186
187 * libfuse: pass device file descriptor to fuse_unmount(), rewrite
188 FreeBSD implementation so that it uses libc (sysctl backed) instead
189 of an embdedded script (kmem backed). Adjust the control flow of
190 hello_ll so that device doesn't get closed before unmount attempt.
191
Miklos Szerediaa8258e2006-02-25 14:42:03 +00001922006-02-25 Miklos Szeredi <miklos@szeredi.hu>
193
194 * Lowlevel lib: return all-zero statvfs data if filesystem doesn't
195 implement method. This is needed on FreeBSD, and nicer on Linux
196 too. Highlevel lib already did this. Reported by Csaba Henk
197
198 * Fix negative entry handling. There was a bug, that negative
199 lookups with timeouts (nodeid == 0) returned -EIO.
200
2012006-02-23 Miklos Szeredi <miklos@szeredi.hu>
202
203 * Fix race between RELEASE and UNLINK, which might leave
204 .fuse_hidden* files around
205
Miklos Szeredi6bab4802006-02-21 18:31:29 +00002062006-02-21 Miklos Szeredi <miklos@szeredi.hu>
207
208 * fusexmp_fh: implement flush() method and call close() on the
209 open file descriptor. This is needed if used on an NFS
210 filesystem, which buffers data until file is closed. Franco Broi
211 spotted the situation when 'cp -p' failed to set the modification
212 time because of this.
213
Miklos Szeredie109e282006-02-20 11:06:20 +00002142006-02-20 Miklos Szeredi <miklos@szeredi.hu>
215
216 * Released 2.6.0-pre1
217
Miklos Szeredib67f2162006-02-20 10:55:33 +00002182006-02-19 Miklos Szeredi <miklos@szeredi.hu>
219
220 * libfuse: fix use-after-free bug in interruptred reply_entry().
221 Patch from John Muir
222
223 * libfuse: fix wrong symbol versioning for fuse_mount. Debian bug
224 ID: 352631. Found by Stéphane Rosi
225
Miklos Szeredi1bf64f42006-02-17 15:49:25 +00002262006-02-17 Miklos Szeredi <miklos@szeredi.hu>
227
228 * Lowlevel lib: Unify fuse_dirent_size() and fuse_add_dirent()
229 into a single function fuse_add_direntry(). This cleans up the
230 interface and makes it possible to do stacking.
231
Miklos Szeredi99ac9c02006-02-16 10:08:32 +00002322006-02-16 Miklos Szeredi <miklos@szeredi.hu>
233
234 * Fix rare race betweeen abort and release caused by failed iget()
235 in fuse_create_open().
236
Miklos Szeredi6e806e92006-02-16 16:59:39 +0000237 * Add 'ac_attr_timeout' option e.g. for filesystems which do their
238 own attribute caching.
239
Miklos Szeredid65cdfe2006-02-15 14:25:17 +00002402006-02-15 Miklos Szeredi <miklos@szeredi.hu>
241
242 * Work around FreeBSD runtime linker "feature" which binds an old
243 version of a symbol to internal references if the symbol has more
244 than one version. This resulted in infinite recursion in
245 fuse_lowlevel_new_compat25().
246
Csaba Henkdcce3e52006-02-10 06:22:15 +00002472006-02-10 Csaba Henk <csaba.henk@creo.hu>
248
249 * Refine clock_gettime() querying so that linker options
250 shall be set as it's appropriate for the target platform.
251
Miklos Szeredi390ae312006-02-10 16:44:34 +00002522006-02-09 Miklos Szeredi <miklos@szeredi.hu>
253
254 * Fix udev rule syntax. Reported by Nix
255
Miklos Szeredieb643582006-02-08 10:54:02 +00002562006-02-08 Miklos Szeredi <miklos@szeredi.hu>
257
258 * In some cases udev rule seems to be ineffective when installed
259 as 40-fuse.rules but work as 60-fuse.rules. Reported by John Hunt
260
Miklos Szeredi357529c2006-02-03 09:20:31 +00002612006-02-03 Miklos Szeredi <miklos@szeredi.hu>
262
263 * Fix compilation when build directory is different from source
264 directory. Reported by Frédéric L. W. Meunier
265
Miklos Szeredice28c7e2006-02-02 14:59:05 +00002662006-02-02 Miklos Szeredi <miklos@szeredi.hu>
267
268 * Fix even bigger bug introduced in fix for request_end() on
269 2006-01-14. Reported by Gal Rosen
270
Miklos Szeredi320abe42006-01-30 18:14:51 +00002712006-01-30 Miklos Szeredi <miklos@szeredi.hu>
272
273 * highlevel-lib: add 'auto_cache' option. This caches file data
274 based on modification time and size
275
Miklos Szeredi065f2222006-01-20 15:15:21 +00002762006-01-20 Miklos Szeredi <miklos@szeredi.hu>
277
Miklos Szeredid66b7282006-02-02 15:15:21 +0000278 * Sanitize storage type and help message in mount_bsd.c. Patch
279 from Csaba Henk
280
Miklos Szeredi065f2222006-01-20 15:15:21 +0000281 * fuse_opt: add new helper constants FUSE_OPT_KEY_KEEP and
282 FUSE_OPT_KEY_DISCARD
283
284 * Add options 'max_readahead', 'sync_read' and 'async_read'
285
286 * Kernel ABI version 7.6:
287
288 * Negotiate the 'max_readahead' value and 'async_read' flags with
289 userspace in the INIT method
290
291 * Add connection info to ->init() methods to both lowlevel and
292 highlevel API
293
294 * Fall back to synchronous read() behavior if either library or
295 userspace filesystem is using the old interface version. This is
296 needed so non-updated filesystems won't be confused by the
297 different read() behavior
298
2992006-01-19 Miklos Szeredi <miklos@szeredi.hu>
300
301 * lib: if "fsname=" option was given, pass it to fusermount
302
303 * fuse_opt: add new fuse_opt_insert_arg() function, which is
304 needed by filesystems to implement some argument manipulations
305 correctly
306
307 * fuse_opt: fix memory leak in handling "--" option
308
3092006-01-18 Miklos Szeredi <miklos@szeredi.hu>
310
311 * kernel: fix detection of case when fuse is not configured into
312 the kernel either as module or built-in
313
314 * fuse_opt.h: fix incompatibility with C++ compilers by renaming
315 'template' structure member to 'templ'. Reported by Takashi Iwai
316
317 * fuse.h: fix compatibility bugs. Patch by Yura Pakhuchiy
318
319 * kernel: support version 2.6.16 (i_sem -> i_mutex)
320
Miklos Szeredi15af1b82006-01-16 17:52:24 +00003212006-01-16 Miklos Szeredi <miklos@szeredi.hu>
322
323 * Added (again) asynchronous readpages support
324
325 * Each connection now shows up under /sys/fs/fuse/connections
326
327 * Connection attributes exported to sysfs: 'waiting' number of
328 waiting requests; 'abort' abort the connection
329
330 * Connection may be aborted through either the sysfs interface or
331 with 'umount -f mountpoint'
332
Miklos Szeredi9db5faa2006-01-14 14:47:21 +00003332006-01-14 Miklos Szeredi <miklos@szeredi.hu>
334
Miklos Szeredi75bb0de2006-01-14 18:38:54 +0000335 * Released 2.5.0
336
3372006-01-14 Miklos Szeredi <miklos@szeredi.hu>
338
Miklos Szeredi9db5faa2006-01-14 14:47:21 +0000339 * kernel: fix a couple of bugs
340
Miklos Szeredi68183ca2006-01-27 11:16:11 +0000341 * Order of request_end() and fuse_copy_finish() was wrong.
Miklos Szeredie0451092006-01-27 11:19:51 +0000342 Posthumous note: Franco Broi managed to exploit this, though it
Miklos Szeredi68183ca2006-01-27 11:16:11 +0000343 seemed quite impossible
Miklos Szeredi9db5faa2006-01-14 14:47:21 +0000344
345 * request_end() used request pointer after decrementing refcount
346
347 * Clearing ->connected or ->mounted connection flags could race
348 with setting other bitfields not protected with a lock
Miklos Szeredi15af1b82006-01-16 17:52:24 +0000349
Miklos Szeredia9820342006-01-10 10:54:11 +00003502006-01-10 Miklos Szeredi <miklos@szeredi.hu>
351
352 * kernel: add necessary compile flags for 2.4.X/x86_64.
353 Report from Sean Ziegeler
354
Miklos Szeredi35676b02006-01-09 10:13:28 +00003552006-01-09 Miklos Szeredi <miklos@szeredi.hu>
356
Miklos Szeredie07b1a22006-01-09 14:46:10 +0000357 * Released 2.5.0-pre2
358
3592006-01-09 Miklos Szeredi <miklos@szeredi.hu>
360
Miklos Szeredi35676b02006-01-09 10:13:28 +0000361 * Applied patch from Csaba Henk, to update mount_bsd to new
362 fuse_mount() semantics
363
Miklos Szeredib32c79b2006-01-09 11:14:29 +0000364 * Ignore auto,noauto,... options in mount.fuse. Reported by Frank
365 Steiner and Don Taber
366
Miklos Szeredicb075c82006-01-09 11:33:04 +0000367 * fusermount: add 'dirsync' mount option
368
Miklos Szerediad005972006-01-07 10:14:34 +00003692006-01-07 Miklos Szeredi <miklos@szeredi.hu>
370
371 * Improved help reporting and added version reporting to library
372
Miklos Szeredi0af762a2006-01-06 09:47:54 +00003732006-01-06 Miklos Szeredi <miklos@szeredi.hu>
374
375 * Change working directory to "/" even if running in the
376 foreground. Patch from Jonathan Brandmeyer
377
Miklos Szeredi95da8602006-01-06 18:29:40 +0000378 * Changed lots of functions to use 'struct fuse_args' instead of
379 separate argc and argv
380
381 * Added fuse_parse_cmdline(), fuse_set_signal_handlers() and
382 fuse_remove_signal_handlers() functions, so that it's now pretty
383 easy to get all the functionality of fuse_main() with a filesystem
384 using the lowlevel API.
385
Miklos Szeredib8638182006-01-02 12:52:24 +00003862006-01-02 Miklos Szeredi <miklos@szeredi.hu>
387
Miklos Szeredif1941472006-01-02 16:27:48 +0000388 * mount.fuse: the 'user' option should be ignored. Report and
389 solution from Mattd.
390
391 * mount.fuse: export PATH in the right place. Report and patch
392 from Hannes Schweizer
Miklos Szeredib8638182006-01-02 12:52:24 +0000393
Miklos Szeredi73f41392005-12-16 11:12:16 +00003942005-12-16 Miklos Szeredi <miklos@szeredi.hu>
395
396 * Clean up the option parsing interface slightly, by creating an
397 "argument list" structure, that contains the argument vector and
398 count
399
Miklos Szeredi4e829092005-12-15 16:13:49 +00004002005-12-15 Miklos Szeredi <miklos@szeredi.hu>
401
402 * fusermount: check if /mnt/mtab is a symlink and don't modify it
403 in that case
404
Miklos Szeredi154ffe22005-12-15 16:41:20 +0000405 * kernel: simplify request size limiting. INIT only contains
406 maximum write size, maximum path component size remains fixed at
407 1024 bytes, and maximum xattr size depends on read buffer.
408
Miklos Szeredie248e4b2005-12-14 16:18:32 +00004092005-12-14 Miklos Szeredi <miklos@szeredi.hu>
410
411 * Fix readdir() failure on x86_64, of 32bit programs compiled
412 without largefile support. Bug report and help from Anthony
413 Kolasny
414
Miklos Szeredi64709572005-12-14 22:16:28 +0000415 * If lookup returns invalid mode, return -EIO instead of creating
Miklos Szeredicaa09312005-12-14 23:25:00 +0000416 a regular file
417
418 * Add current output argument vector to option processing
419 function
Miklos Szeredi64709572005-12-14 22:16:28 +0000420
Miklos Szeredi76fc3de2005-12-12 09:34:45 +00004212005-12-12 Miklos Szeredi <miklos@szeredi.hu>
422
423 * Fix stale code in ifdef FreeBSD. Patch from Csaba Henk
424
Miklos Szeredi659743b2005-12-09 17:41:42 +00004252005-12-09 Miklos Szeredi <miklos@szeredi.hu>
426
Miklos Szeredi3b534a42005-12-09 20:09:42 +0000427 * Released 2.5.0-pre1
428
4292005-12-09 Miklos Szeredi <miklos@szeredi.hu>
430
Miklos Szeredi659743b2005-12-09 17:41:42 +0000431 * libfuse: added option parsing interface, defined in
432 <fuse_opt.h>.
433
Miklos Szeredic53cddd2005-12-07 12:57:59 +00004342005-12-07 Miklos Szeredi <miklos@szeredi.hu>
435
436 * Return EIO for file operations (read, write, fsync, flush) on
437 open files whose inode has become "bad". Inodes will be marked
438 "bad" if their type changes. Bug report by Csaba Henk
439
Miklos Szeredi044da2e2005-12-06 17:59:55 +00004402005-12-06 Miklos Szeredi <miklos@szeredi.hu>
441
442 * Use bigger request buffer size. write() did not work on archs
443 with > 4k page size, Bug report by Mark Haney
444
445 * ABI version 7.5:
446
447 * Extend INIT reply with data size limits
448
Miklos Szeredifa829b52005-12-02 11:05:41 +00004492005-12-02 Miklos Szeredi <miklos@szeredi.hu>
450
451 * Fix memory leak in fuse_read_cmd()/fuse_process_cmd(). Bug
452 reported by Vincenzo Ciancia
453
454 * Handle exit-by-umount in fuse_read_cmd()
455
Miklos Szeredi3cc8a262005-11-29 11:04:27 +00004562005-11-29 Miklos Szeredi <miklos@szeredi.hu>
457
458 * Check if '-msoft-float' option is supported by compiler when
459 configuring for a 2.4.x kernel. Bug report by Mark Haney
460
Miklos Szeredi40d7b382005-11-29 20:07:23 +0000461 * In multithreaded loop send a TERM signal to the main thread if
462 one of the other threads exit. Needed on FreeBSD for a clean exit
463 on umount. Should not cause any harm on Linux either
464
Miklos Szerediead7f102005-11-28 16:02:27 +00004652005-11-28 Miklos Szeredi <miklos@szeredi.hu>
466
467 * Fix bug in 32-bit file handle compatibility
468
Miklos Szeredia90b7342005-11-27 19:22:42 +00004692005-11-27 Miklos Szeredi <miklos@szeredi.hu>
470
471 * Block TERM, INT, HUP and QUIT signals in all but the main
472 thread. According to POSIX it's not specified which thread will
473 receive these signals.
Miklos Szeredi2b478112005-11-28 13:27:10 +0000474
475 * Kernel changes:
476
477 * Check for directory aliasing on mkdir, not just on lookup
478
479 * Check for special node ID values in create+open operation
480
481 * Sync with -mm: readv, writev, aio_read and aio_write methods
482 added to file operations
483
484 * Cleanups: lookup code, page offset calculation
485
486 * ABI stepped to 7.4, changes:
487
488 * frsize member added to fuse_kstatfs structure
489
490 * added support for negative entry caching: on lowlevel API if
491 fuse_entry_param::ino is set to zero in reply to a lookup request,
492 the kernel will cache the dentry for the specified amount of time.
493
494 * libfuse: added 'negative_timeout' option: specifies how much
495 negative entries should be cached. Default is zero, to be
Miklos Szerediead7f102005-11-28 16:02:27 +0000496 compatible with prior versions
Miklos Szeredi2b478112005-11-28 13:27:10 +0000497
Miklos Szeredibac4c772005-11-23 13:35:54 +00004982005-11-22 Miklos Szeredi <miklos@szeredi.hu>
499
500 * Add detection of mainline FUSE code in running kernel
501
Miklos Szeredi8393e3d2005-11-21 11:37:01 +00005022005-11-21 Miklos Szeredi <miklos@szeredi.hu>
503
504 * Don't use async cancelation in multithreaded loop. This makes
505 it more portable to systems where read() is not async cancel safe.
506 Report from Andriy Gapon
507
Miklos Szeredi05c97842005-11-20 17:05:07 +00005082005-11-20 Miklos Szeredi <miklos@szeredi.hu>
509
510 * Warn if API version 11 compatibility is requested
511
Miklos Szeredi9c2ccb42005-11-17 17:11:48 +00005122005-11-17 Miklos Szeredi <miklos@szeredi.hu>
513
514 * More FreeBSD merge
515
Miklos Szeredi832ee442005-11-18 21:02:36 +0000516 * fusermount: don't allow mountpoints with '\n', '\t', or '\\' in
517 them, because it corrupts /etc/mtab. Found by Thomas Biege
Miklos Szeredibac4c772005-11-23 13:35:54 +0000518 CVE-2005-3531
Miklos Szeredi832ee442005-11-18 21:02:36 +0000519
520 * libfuse: don't use system() to invoke 'fusermount -u ...'
521 because it breaks mountpoints with spaces in them into multiple
522 arguments
523
Miklos Szeredib3f99722005-11-16 13:00:24 +00005242005-11-16 Miklos Szeredi <miklos@szeredi.hu>
525
526 * Merge library part of FreeBSD port. Patch by Csaba Henk
527
Miklos Szeredi3a770472005-11-11 21:32:42 +00005282005-11-11 Miklos Szeredi <miklos@szeredi.hu>
529
530 * Use 64bit type for file handle, so the full range supported by
531 the kernel interface is available to applications
532
Miklos Szeredibcc53852005-11-10 09:54:41 +00005332005-11-10 Miklos Szeredi <miklos@szeredi.hu>
534
535 * Moved mountpoint argument checking from fuse_parse_cmdline() to
536 fuse_mount() in preparation to FreeBSD merge.
537
Miklos Szeredi4ec06812005-11-08 13:04:27 +00005382005-11-08 Miklos Szeredi <miklos@szeredi.hu>
539
540 * Remove unneeded close() from fuse_teardown(). Spotted by Csaba
541 Henk.
542
Miklos Szeredic706ad92005-11-07 15:30:48 +00005432005-11-07 Miklos Szeredi <miklos@szeredi.hu>
544
545 * Make the statfs change backwards compatible.
546
Miklos Szeredi52cb09d2005-11-07 11:59:00 +00005472005-11-06 Miklos Szeredi <miklos@szeredi.hu>
548
549 * Change ->statfs() method to use 'struct statvfs' instead of
550 'struct statfs'. This makes the API more portable since statvfs()
551 is defined by POSIX.
552
Miklos Szeredif7eec032005-10-28 13:09:50 +00005532005-10-28 Miklos Szeredi <miklos@szeredi.hu>
554
555 * Add fgetattr() method, which currently will only be called after
556 a successful call to a create() method.
557
Miklos Szeredib0b13d12005-10-26 12:53:25 +00005582005-10-26 Miklos Szeredi <miklos@szeredi.hu>
559
Miklos Szeredi11509ce2005-10-26 16:04:04 +0000560 * Change kernel ABI version to 7.3
561
Miklos Szeredib0b13d12005-10-26 12:53:25 +0000562 * Add ACCESS operation. This is called from the access() system
Miklos Szeredid9079a72005-10-26 15:29:06 +0000563 call if 'default_permissions' mount option is not given, and is
564 not called on kernels 2.4.*
Miklos Szeredib0b13d12005-10-26 12:53:25 +0000565
Miklos Szeredid9079a72005-10-26 15:29:06 +0000566 * Add atomic CREATE+OPEN operation. This will only work with
567 2.6.15 (presumably) or later Linux kernels.
568
Miklos Szeredi11509ce2005-10-26 16:04:04 +0000569 * Add ftruncate() method. This will only work with 2.6.15
570 (presumably) or later Linux kernels.
571
572 * Fix kernel module compile if kernel source and build directories
573 differ. Report and initial patch by John Eastman
574
Miklos Szeredic4c12ae2005-10-20 14:48:50 +00005752005-10-18 Miklos Szeredi <miklos@szeredi.hu>
576
577 * lib: optimize buffer reallocation in fill_dir.
578
Miklos Szeredic9daeb12005-10-17 10:19:21 +00005792005-10-17 Miklos Szeredi <miklos@szeredi.hu>
580
581 * Released 2.4.1
582
Miklos Szeredif412d072005-10-14 21:24:32 +00005832005-10-14 Miklos Szeredi <miklos@szeredi.hu>
584
Miklos Szeredi062f0e52005-10-14 21:28:21 +0000585 * libfuse: add debug for write result (by Shaun Jackman) and
586 warnings for too large read/write result
Miklos Szeredif412d072005-10-14 21:24:32 +0000587
Miklos Szeredib75d4b92005-10-11 10:12:08 +00005882005-10-11 Miklos Szeredi <miklos@szeredi.hu>
589
590 * Spelling fixes, thanks to Ioannis Barkas
591
Miklos Szeredibaab5872005-10-10 08:41:14 +00005922005-10-10 Miklos Szeredi <miklos@szeredi.hu>
593
594 * fuse_common.h: use extern "C". Thanks to Valient Gough for the
595 patch
596
Miklos Szeredi4f5df5e2005-10-07 12:39:58 +00005972005-10-07 Miklos Szeredi <miklos@szeredi.hu>
598
599 * highlevel-lib: init() and destroy() methods didn't have an
600 initialized fuse_context. Bug reported by Tim Stoakes
601
Miklos Szeredif2491122005-10-04 10:10:41 +00006022005-10-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi83f253e2005-10-04 05:56:01 +0000603
604 * Released 2.4.0
605
Miklos Szeredi836ab712005-10-03 14:11:59 +00006062005-10-03 Miklos Szeredi <miklos@szeredi.hu>
607
608 * Add documentation to fuse_lowlevel.h
609
610 * API cleanups:
611
612 * Remove definitions of unused FATTR_CTIME / FUSE_SET_ATTR_CTIME
613
614 * Move fuse_mount() and fuse_unmount() to fuse_common.h
615
616 * Change the return type of fuse_reply_none() from int to void.
617
Miklos Szerediaf138742005-09-30 08:49:59 +00006182005-09-30 Miklos Szeredi <miklos@szeredi.hu>
619
620 * kernel: NFS exporting leaked dentries. Bug found and fixed by
621 Akshat Aranya.
622
Miklos Szeredidb016e02005-09-29 10:06:27 +00006232005-09-29 Miklos Szeredi <miklos@szeredi.hu>
624
625 * fusermount: fix error message, when unable to open /dev/fuse.
626 Report by Balázs Pozsár
627
Miklos Szeredi35200932005-09-28 14:50:49 +00006282005-09-28 Miklos Szeredi <miklos@szeredi.hu>
629
630 * UClibc fixes from Christian Magnusson
631
Miklos Szeredi8eddf642005-09-27 08:58:26 +00006322005-09-27 Miklos Szeredi <miklos@szeredi.hu>
633
634 * Added NAME="%k" to util/udev.rules. Fix by Mattias Wadman.
635
Miklos Szerediedec95c2005-09-26 10:22:22 +00006362005-09-26 Miklos Szeredi <miklos@szeredi.hu>
637
Miklos Szeredi39851ac2005-09-26 11:17:50 +0000638 * Released 2.4.0-rc1
639
6402005-09-26 Miklos Szeredi <miklos@szeredi.hu>
641
Miklos Szerediedec95c2005-09-26 10:22:22 +0000642 * fusermount: allow user umount in the case when /etc/mtab is a
643 symlink to /proc/mounts. Reported by Balázs Pozsár.
644
Miklos Szeredi6becf0b2005-09-23 11:25:28 +00006452005-09-23 Miklos Szeredi <miklos@szeredi.hu>
646
Miklos Szeredi8722dd22005-09-23 13:34:44 +0000647 * Check for special node ID values in lookup and creation
Miklos Szeredi6becf0b2005-09-23 11:25:28 +0000648
Miklos Szeredif45f3c12005-09-22 15:14:27 +00006492005-09-22 Miklos Szeredi <miklos@szeredi.hu>
650
651 * Slight optimization in returning EINVAL error in case of an open
652 with O_DIRECT flag.
653
Miklos Szeredi670d07a2005-09-20 11:36:32 +00006542005-09-20 Miklos Szeredi <miklos@szeredi.hu>
655
656 * Remove '--enable-auto-modprobe' configure flag. Module
657 auto-loading is now handled by the kernel.
658
Miklos Szeredid51fca12005-09-15 12:51:00 +00006592005-09-15 Miklos Szeredi <miklos@szeredi.hu>
660
661 * Install UDEV rule file, so /dev/fuse is created with mode 0666.
662 Help from Jens M. Noedler.
663
Miklos Szeredi7e7530d2005-09-14 15:20:26 +00006642005-09-14 Miklos Szeredi <miklos@szeredi.hu>
665
666 * Add memory cleanup on thread exit
667
Miklos Szeredid7ea8cf2005-09-13 12:53:58 +00006682005-09-13 Miklos Szeredi <miklos@szeredi.hu>
669
670 * Set umask to zero in fusexmp and fusexmp_fh, so that
671 files/directories are created with the requested mode.
672
Miklos Szeredi0d41f2f2005-09-12 16:40:26 +00006732005-09-12 Miklos Szeredi <miklos@szeredi.hu>
674
675 * Don't ignore read error in multithreaded loop
676
Miklos Szeredifcf9f8d2005-09-08 14:28:54 +00006772005-09-08 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi56487812005-09-02 13:05:06 +0000678
Miklos Szeredi2277ecc2005-09-08 15:34:44 +0000679 * Released 2.4.0-pre2
680
6812005-09-08 Miklos Szeredi <miklos@szeredi.hu>
682
Miklos Szeredifcf9f8d2005-09-08 14:28:54 +0000683 * Revert lock and access operations. Postpone these until 2.5.
684
6852005-09-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi56487812005-09-02 13:05:06 +0000686
687 * Fix compile warning on 2.6.13 and later
688
Miklos Szeredi3b9e53f2005-09-02 16:04:48 +0000689 * Fix compilation on old kernels
Miklos Szeredi0716de02005-09-02 14:56:09 +0000690
Miklos Szeredi77ccf652005-08-19 14:40:27 +00006912005-08-19 Miklos Szeredi <miklos@szeredi.hu>
692
693 * lib: always refresh directory contents after rewinddir() to
694 conform to SUS. Bug found by John Muir.
695
Miklos Szeredia1482422005-08-14 23:00:27 +00006962005-08-15 Miklos Szeredi <miklos@szeredi.hu>
697
Miklos Szeredic43f9412005-08-15 15:10:48 +0000698 * Released 2.4.0-pre1
699
7002005-08-14 Miklos Szeredi <miklos@szeredi.hu>
701
Miklos Szeredia1482422005-08-14 23:00:27 +0000702 * lib: cleaned up (or messed up, depending on your POV) the low
703 level library API. Hopefully this is close to the final form.
704
Miklos Szeredicc1b97c2005-08-05 10:35:26 +00007052005-08-05 Miklos Szeredi <miklos@szeredi.hu>
706
707 * fusermount: don't allow empty mountpoint argument, which defeats
708 automatic umounting in fuse_main(). Bugreport by Václav Jůza
709
Miklos Szeredif6e0ec62005-08-03 09:11:06 +00007102005-08-03 Miklos Szeredi <miklos@szeredi.hu>
711
712 * fix warnings in fuse.h and fuse_lowlevel.h if -Wshadow compiler
713 option is used (Paul Alfille).
714
Miklos Szeredi6c0209a2005-08-02 13:31:28 +00007152005-08-02 Miklos Szeredi <miklos@szeredi.hu>
716
717 * highlevel-lib: added mount options "attr_timeout" and
718 "entry_timeout". These options control the length of time file
719 attributes and entries (names) are cached. Both default to 1.0
720 second.
Miklos Szeredif6e0ec62005-08-03 09:11:06 +0000721
722 * kernel: correctly handle zero timeout for attributes and entries
723
Miklos Szeredi56a61f02005-08-01 10:42:25 +00007242005-08-01 Miklos Szeredi <miklos@szeredi.hu>
725
726 * Added missing symbols to versionscript (Joshua J. Berry)
727
Miklos Szeredie77cc072005-08-01 11:58:51 +0000728 * kernel: implement two flags, open can set: 'direct_io' and
729 'keep_cache'. These correspond exactly to mount options
730 'direct_io' and 'kernel_cache', but allow a per-open setting.
731
732 * Move 'direct_io' and 'kernel_cache' mount option handling to
733 userspace. For both mount options, if the option is given, then
734 the respective open flag is set, otherwise the open flag is left
735 unmodified (so the filesystem can set it).
Miklos Szeredi7b28eae2005-08-01 12:48:30 +0000736
Miklos Szeredi31066bb2005-08-01 14:49:31 +0000737 * lib (highlevel): make open method optional
Miklos Szeredif6e0ec62005-08-03 09:11:06 +0000738
Miklos Szeredi2aaf24a2005-07-28 11:59:41 +00007392005-07-28 Miklos Szeredi <miklos@szeredi.hu>
740
741 * kernel: invalidate attributes for read/readdir/readlink
742 operations
743
744 * kernel: detect newer UML kernels
745
Miklos Szeredibfb99462005-07-26 11:07:55 +00007462005-07-26 Miklos Szeredi <miklos@szeredi.hu>
747
748 * Make the installation path of fuse.ko and mount.fuse
749 configurable through INSTALL_MOD_PATH and MOUNT_FUSE_PATH
750 environment variables. Requirement and help from Csaba Henk.
751
Miklos Szeredi8d4d1b82005-07-22 11:58:47 +00007522005-07-22 Miklos Szeredi <miklos@szeredi.hu>
753
754 * Fix bug, that causes filesystem requests to hang when unique
755 request counter becomes negative. This happens after
756 2,147,483,648 operations, so most people won't care. Thanks to
757 Franco Broi for the report and testing.
758
Miklos Szeredi9b813af2005-07-21 07:59:37 +00007592005-07-21 Miklos Szeredi <miklos@szeredi.hu>
760
761 * Don't change mtime/ctime/atime to local time on read/write.
762 Bug reported by Ben Grimm
763
764 * Install fuse_common.h and fuse_lowlevel.h. Report by Christian
765 Magnusson
766
767 * fusermount: use getopt_long() for option parsing. It allows the
768 use of '--' to stop argument scanning, so fusermount can now
769 operate on directories whose names begin with a '-'. Patch by
770 Adam Connell
771
Miklos Szeredibd10a7b2005-07-15 09:59:59 +00007722005-07-15 Miklos Szeredi <miklos@szeredi.hu>
773
774 * fusermount: add '-v', '--version' and '--help' options
775
776 * add inode based API
777
Miklos Szeredi2482fdb2005-07-12 13:23:53 +00007782005-07-12 Miklos Szeredi <miklos@szeredi.hu>
779
780 * lib: don't block signals in worker threads. Problem noticed by
781 Usarin Heininga
782
Miklos Szeredic902a852005-07-07 12:35:37 +00007832005-07-07 Miklos Szeredi <miklos@szeredi.hu>
784
785 * lib: don't allow both 'allow_other' and 'allow_root' options to
786 be given
787
Miklos Szeredi437d8112005-07-06 09:14:20 +00007882005-07-06 Miklos Szeredi <miklos@szeredi.hu>
789
790 * fusermount: check if mountpoint is empty (only '.' and '..' for
791 directories, and size = 0 for regular files). If "nonempty"
792 option is given, omit this check. This is useful, so users don't
793 accidentally hide data (e.g. from backup programs). Thanks to
794 Frank van Maarseveen for pointing this out.
795
796 * kernel: check if mandatory mount options ('fd', 'rootmode',
797 'user_id', 'group_id') are all given
798
Miklos Szeredi340d21f2005-07-06 10:07:52 +0000799 * lib: simplify 'readdir_ino' handling
800
Miklos Szeredie331c4b2005-07-06 13:34:02 +0000801 * lib: add mount options 'umask=M', 'uid=N', 'gid=N'
802
Miklos Szeredibb9f5172005-07-03 18:03:11 +00008032005-07-03 Miklos Szeredi <miklos@szeredi.hu>
804
805 * kernel: clean up 'direct_io' code
806
Miklos Szeredie1bcece2005-06-28 10:37:06 +00008072005-06-28 Miklos Szeredi <miklos@szeredi.hu>
808
809 * Add 'mount.fuse' written by Petr Klima
810
Miklos Szeredi866826d2005-06-28 12:22:57 +0000811 * '/dev/fuse' is created by 'make install' if does not yet exist
812
Miklos Szeredi129ef8f2005-06-20 13:48:42 +00008132005-06-20 Miklos Szeredi <miklos@szeredi.hu>
814
815 * Fix UCLIBC compile error. Patch by Christian Magnusson
816
Miklos Szerediec12fad2005-06-08 10:26:34 +00008172005-06-08 Miklos Szeredi <miklos@szeredi.hu>
818
819 * Enable the auto-loading of the module via access to the
820 corresponding device file. Patch by Takashi Iwai.
821
Miklos Szeredidaa690e2005-06-08 10:41:36 +0000822 * Allow mounting a regular file (over a regular file) for
823 unprivleged users.
824
Miklos Szeredi7495abf2005-06-08 11:01:17 +0000825 * Do not create temporary device file. Require "/dev/fuse" to
826 exist, and be readable/writable by the mounting user.
827
Miklos Szeredi46960ce2005-06-02 09:05:00 +00008282005-06-02 Miklos Szeredi <miklos@szeredi.hu>
829
Miklos Szeredi56478552005-06-02 10:29:00 +0000830 * Released 2.3.0
831
8322005-06-02 Miklos Szeredi <miklos@szeredi.hu>
833
Miklos Szeredi46960ce2005-06-02 09:05:00 +0000834 * Fix serious information leak: if the filesystem returns a short
835 byte count to a read request, and there are non-zero number of
836 pages which are not filled at all, these pages will not be zeroed.
837 Hence the user can read out previous memory contents. Found by
838 Sven Tantau.
839
Miklos Szeredi33be22d2005-05-27 09:12:43 +00008402005-05-27 Miklos Szeredi <miklos@szeredi.hu>
841
842 * Add "readdir_ino" mount option, which tries to fill in the d_ino
843 field in struct dirent. This mount option is ignored if "use_ino"
844 is used. It helps some programs (e.g. 'pwd' used over NFS from a
845 non-Linux OS). Patch by David Shaw.
846
Miklos Szeredif94e0102005-05-12 14:56:34 +00008472005-05-12 Miklos Szeredi <miklos@szeredi.hu>
848
Miklos Szeredieb009c42005-05-12 15:01:17 +0000849 * Released 2.3-rc1
850
8512005-05-12 Miklos Szeredi <miklos@szeredi.hu>
852
Miklos Szeredif94e0102005-05-12 14:56:34 +0000853 * File save in krusader and other editors doesn't work with sshfs,
854 because open() is interrupted by a periodic signal, and open()
855 restarts forever, without any progress. This could just be fixed
856 in open(), but the problem is more generic: if signals are
857 received more often than the filesystem can get the request to
858 userspace, it will never finish. This is probably only a
859 theoretical problem, nevertheless I'm removing the possibility to
860 interrupt requests with anything other than SIGKILL, even before
861 being sent to userspace. Bugreport by Eduard Czimbalmos.
862
Miklos Szeredi0b9a06e2005-05-09 09:05:49 +00008632005-05-09 Miklos Szeredi <miklos@szeredi.hu>
864
Miklos Szeredic2a33ee2005-05-09 13:29:17 +0000865 * libfuse: add "tree_lock" rwlock, that is locked for write in
866 rename, unlink and rmdir, and locked for read in all other
867 operations. This should fix the rename/release race reported by
868 Valient Gough and others. The solution is very coarse, a finer
869 grained locking scheme could be implemented, but it would be much
870 more complex. Let's see whether this is good enough.
871
8722005-05-09 Miklos Szeredi <miklos@szeredi.hu>
873
Miklos Szeredi0b9a06e2005-05-09 09:05:49 +0000874 * Released 2.3-pre7
875
Miklos Szeredi38009022005-05-08 19:47:22 +00008762005-05-08 Miklos Szeredi <miklos@szeredi.hu>
877
878 * Better fix for out of order FORGET messages. Now the
879 LOOKUP/FORGET messages are balanced exactly (one FORGET can
880 balance many lookups), so the order no longer matters. This
Miklos Szeredi0b9a06e2005-05-09 09:05:49 +0000881 changes the kernel ABI slightly, but the library remains backward
Miklos Szeredi38009022005-05-08 19:47:22 +0000882 compatible.
883
Miklos Szeredid0cf1fb2005-05-06 10:10:38 +00008842005-05-06 Miklos Szeredi <miklos@szeredi.hu>
885
886 * Fix abort for out of order FORGET messages. Again. Spotted by
887 Franco Broi again. Sorry :)
888
Miklos Szeredi9372ffd2005-04-29 08:03:24 +00008892005-04-29 Miklos Szeredi <miklos@szeredi.hu>
890
Miklos Szeredicb6413a2005-04-29 08:16:20 +0000891 * Released 2.3-pre6
892
8932005-04-29 Miklos Szeredi <miklos@szeredi.hu>
894
Miklos Szeredi9372ffd2005-04-29 08:03:24 +0000895 * Make fusermount work with fuse kernel modules not yet supporting
896 the "group_id" option (added for the purpose of stricter
897 permission checking).
898
Miklos Szeredi9c1b68d2005-04-28 09:55:09 +00008992005-04-28 Miklos Szeredi <miklos@szeredi.hu>
900
901 * Check for hard-linked directories in lookup. This could cause
902 problems in the VFS, which assumes that such objects never exist.
903
904 * Make checking of permission for other users more strict. Now
905 the same privilege is required for the mount owner as for ptrace
906 on the process performing the filesystem operation.
Miklos Szeredi21019c92005-05-09 11:22:41 +0000907
Miklos Szeredi3efcb562005-04-23 13:34:29 +00009082005-04-23 Miklos Szeredi <miklos@szeredi.hu>
909
910 * Released 2.3-pre5
911
Miklos Szeredid001bf92005-04-22 07:54:11 +00009122005-04-22 Miklos Szeredi <miklos@szeredi.hu>
913
914 * Add -msoft-float to kernel module compile flags for 2.4.X. This
915 is needed on certain architectures. Report from Chris Kirby
916
917 * Fix buggy behavior of open(..., O_CREAT|O_EXCL) if interrupted.
918 Reported by David Shaw
919
Miklos Szeredi0111f9d2005-04-22 12:04:55 +0000920 * Remove "allow_root" option from kernel module, and implement
921 it's functionality in the library
922
923 * Fix Oops caused by premature release of fuse_conn. Clean up
924 related code, to be more readable
925
Miklos Szeredif9137452005-04-23 10:59:44 +0000926 * Sendfile should not use page cache if "direct_io" mount option
927 is given
928
Miklos Szeredib7640d22005-04-08 15:15:28 +00009292005-04-08 Miklos Szeredi <miklos@szeredi.hu>
930
931 * Fix Oops in case of nfs export. Spotted by David Shaw
932
Miklos Szeredi89814a12005-04-08 16:39:09 +0000933 * Fix another Oops in case of write over nfs with direct_io turned
934 on. Again spotted by David Shaw
935
Miklos Szerediab974562005-04-07 15:40:21 +00009362005-04-07 Miklos Szeredi <miklos@szeredi.hu>
937
Miklos Szeredi432d6182005-04-07 15:56:13 +0000938 * Released 2.3-pre4
939
9402005-04-07 Miklos Szeredi <miklos@szeredi.hu>
941
Miklos Szerediab974562005-04-07 15:40:21 +0000942 * lib: finalized new readdir() interface, which now supersedes the
943 getdir() method.
944
Miklos Szeredi30e093a2005-04-03 17:44:54 +00009452005-04-03 Miklos Szeredi <miklos@szeredi.hu>
946
947 * Released 2.3-pre3
948
9492005-04-03 Miklos Szeredi <miklos@szeredi.hu>
950
951 * Implement backward compatibility with version 5 kernel ABI
952
Miklos Szeredi18fce982005-04-01 21:07:35 +00009532005-04-01 Miklos Szeredi <miklos@szeredi.hu>
954
955 * Released 2.3-pre2
956
9572005-04-01 Miklos Szeredi <miklos@szeredi.hu>
958
959 * kernel: fix dirent offset handling
960
961 * lib: add readdir and releasedir methods
962
963 * lib: use fh field of fuse_file_info in opendir, readdir,
964 releasedir and fsyncdir methods
965
966 * lib: check kernel API version and bail out of it's old. This
967 will be properly fixed in the next release
968
9692005-03-31 Miklos Szeredi <miklos@szeredi.hu>
970
971 * Released 2.3-pre1
972
Miklos Szeredieab72ef2005-03-31 19:59:12 +00009732005-03-31 Miklos Szeredi <miklos@szeredi.hu>
974
975 * kernel API: add padding to structures, so 64bit and 32bit
976 compiler will return the same size
977
978 * kernel API: add offset field to fuse_dirent. This will allow
979 more sophisticated readdir interface for userspace
980
981 * kernel API: change major number to 6
982
983 * kernel: fix warnings on 64bit archs
984
985 * kernel: in case of API version mismatch, return ECONNREFUSED
986
Miklos Szeredi407e6a72005-03-25 12:19:43 +00009872005-03-24 Miklos Szeredi <miklos@szeredi.hu>
988
989 * kernel: trivial cleanups
990
Miklos Szeredi4283ee72005-03-21 12:09:04 +00009912005-03-21 Miklos Szeredi <miklos@szeredi.hu>
992
993 * Add fsyncdir() operation
994
Miklos Szeredid17da462005-03-21 11:47:04 +00009952005-03-19 Miklos Szeredi <miklos@szeredi.hu>
996
997 * kernel: add locking to background list (fixes previous fix)
998
9992005-03-18 Miklos Szeredi <miklos@szeredi.hu>
1000
1001 * kernel: fix bug which could cause leave busy inodes after
1002 unmount, and Oops.
1003
10042005-03-08 Miklos Szeredi <miklos@szeredi.hu>
1005
1006 * examples: add -lpthread to link flags to work around valgrind
1007 quirk
1008
1009 * lib: don't exit threads, so cancelation doesn't cause segfault
1010
Miklos Szeredi31fa41c2005-03-04 17:28:51 +000010112005-03-04 Miklos Szeredi <miklos@szeredi.hu>
1012
1013 * kernel: fix nasty bug which could cause an Oops under certain
1014 situations. Found by Magnus Johansson
1015
Miklos Szeredif43f0632005-02-28 11:46:56 +000010162005-02-28 Miklos Szeredi <miklos@szeredi.hu>
1017
Miklos Szeredi159bd7e2005-02-28 17:32:16 +00001018 * libfuse: added opendir() method. This can be used in case
Miklos Szeredif43f0632005-02-28 11:46:56 +00001019 permission checking in getdir() is too late. Thanks to Usarin
1020 Heininga for pointing out this deficiency
1021
Miklos Szeredi159bd7e2005-02-28 17:32:16 +00001022 * libfuse: added init() and destroy() methods to fuse_operations
1023
Miklos Szeredif43f0632005-02-28 11:46:56 +00001024 * kernel: llseek() method for files and directories made explicit
1025
1026 * kernel: fixed inode leak in NFS export in case of nodeid
1027 wrapping
1028
Miklos Szeredied3c97c2005-02-15 17:04:50 +000010292005-02-15 Miklos Szeredi <miklos@szeredi.hu>
1030
1031 * libfuse: clean up some unitialized memory found with valgrind
1032
Miklos Szeredi47c52982005-02-23 09:27:38 +00001033 * Add -lpthread to Libs in fuse.pc. Valgrind seems to need an
1034 explicitly linked libpthread for applications
1035
Miklos Szeredia7169412005-02-10 07:35:05 +000010362005-02-10 Miklos Szeredi <miklos@szeredi.hu>
1037
1038 * fusermount: set umask, otherwise /etc/mtab will have
1039 unpredictable permission. Spotted by Jindrich Kolorenc
1040
1041 * fusermount: set owner and group of /etc/mtab to original values
1042 on unmount
Miklos Szeredi830ef702005-02-10 19:39:34 +00001043
1044 * libfuse: add 'use_ino' option to help. Patch by Valient Gough
Miklos Szeredi21019c92005-05-09 11:22:41 +00001045
Miklos Szeredib92d9782005-02-07 16:10:49 +000010462005-02-07 Miklos Szeredi <miklos@szeredi.hu>
1047
1048 * Cleaned up directory reading (temporary file is not used)
1049
Miklos Szerediff30a6c2005-02-02 10:53:59 +000010502005-02-02 Miklos Szeredi <miklos@szeredi.hu>
1051
Miklos Szeredi7ed2e5d2005-02-02 13:31:14 +00001052 * Released 2.2
1053
10542005-02-02 Miklos Szeredi <miklos@szeredi.hu>
1055
Miklos Szerediff30a6c2005-02-02 10:53:59 +00001056 * Fix possible race when operation is interrupted
1057
Miklos Szeredi7a983952005-01-28 09:58:19 +000010582005-01-28 Miklos Szeredi <miklos@szeredi.hu>
1059
Miklos Szeredie5183742005-02-02 11:14:04 +00001060 * Fix compilation on 2.6.7
Miklos Szeredi7a983952005-01-28 09:58:19 +00001061
Miklos Szeredied6b5dd2005-01-26 17:07:59 +000010622005-01-26 Miklos Szeredi <miklos@szeredi.hu>
1063
Miklos Szeredid48d5f72005-01-26 20:43:41 +00001064 * Released 2.2-pre6
1065
10662005-01-26 Miklos Szeredi <miklos@szeredi.hu>
1067
Miklos Szeredied6b5dd2005-01-26 17:07:59 +00001068 * Fix bug in link() operation which caused the wrong path to be
1069 passed as the first argument. Found by Anton Altaparmakov
1070
Miklos Szeredi01fd89c2005-01-21 11:18:35 +000010712005-01-21 Miklos Szeredi <miklos@szeredi.hu>
1072
1073 * LIB: fix double reply in readdir operation
1074
Miklos Szeredi773d4ae2005-01-21 16:09:08 +00001075 * fusermount: fix uid checking bug. Patch by Adam Connell
1076
Miklos Szeredi1e1cddf2005-02-02 10:15:36 +00001077 * KERNEL: fix compile on various RedHat patched 2.4 kernels.
Miklos Szeredi57762852005-01-21 16:46:58 +00001078 Patch by Keshava Gowda
1079
Miklos Szeredi64074142005-01-20 08:48:11 +000010802005-01-20 Miklos Szeredi <miklos@szeredi.hu>
1081
Miklos Szeredi092b50b2005-01-20 18:05:07 +00001082 * KERNEL: provide correct llseek semantics for fuse device (fixes
1083 a bug on Progeny 2.4.20 kernel). Reported by Valient Gough
1084
10852005-01-20 Miklos Szeredi <miklos@szeredi.hu>
1086
Miklos Szeredi64074142005-01-20 08:48:11 +00001087 * Released 2.2-pre5 (matches kernel 2.6.11-rc1-mm2)
1088
Miklos Szeredi1adb2272005-01-18 21:19:58 +000010892005-01-18 Miklos Szeredi <miklos@szeredi.hu>
1090
1091 * KERNEL ABI: remove GETDIR operation, and add OPENDIR, READDIR
1092 and RELEASEDIR. This ends the ugly hack of passing a file
1093 descriptor to the kernel, and actually makes the code simpler.
1094
Miklos Szeredi7db35c02005-01-17 09:46:28 +000010952005-01-17 Miklos Szeredi <miklos@szeredi.hu>
1096
Miklos Szeredic2e960e2005-01-17 13:05:21 +00001097 * Released 2.2-pre4
1098
10992005-01-17 Miklos Szeredi <miklos@szeredi.hu>
1100
Miklos Szeredi7db35c02005-01-17 09:46:28 +00001101 * fusermount: remove capability setting, which was the cause of
1102 problems for some users. It seems that FS related capabilities
Miklos Szeredie5183742005-02-02 11:14:04 +00001103 are removed by setfsuid(), so this isn't even needed.
Miklos Szeredi7db35c02005-01-17 09:46:28 +00001104
Miklos Szeredidbe0f652005-01-15 14:32:56 +000011052005-01-15 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi9ed69ba2005-01-13 12:11:49 +00001106
Miklos Szeredidbe0f652005-01-15 14:32:56 +00001107 * fix compilation on 2.4 kernels (reported by Valient Gough)
1108
1109 * fix failure to unmount bug (found by David Shaw)
Miklos Szeredie5183742005-02-02 11:14:04 +00001110
Miklos Szeredi5ef2a9b2005-01-15 09:42:01 +00001111 * fusermount: improve parsing of /etc/fuse.conf
1112
11132005-01-13 Miklos Szeredi <miklos@szeredi.hu>
1114
Miklos Szeredi9ed69ba2005-01-13 12:11:49 +00001115 * Remove 'mount_max' and 'user_allow_other' module options. These
1116 are now checked by fusermount, and can be set in /etc/fuse.conf
1117
1118 * KERNEL: change check for fsid == 0 to capable(CAP_DAC_OVERRIDE)
1119
Miklos Szeredi81394522005-01-11 14:24:18 +000011202005-01-11 Miklos Szeredi <miklos@szeredi.hu>
1121
1122 * KERNEL: fix possible inode allocation problem, where
1123 sizeof(struct inode) is not aligned (found by Mike Waychison)
1124
1125 * KERNEL: use new follow_link/put_link methods
1126
1127 * KERNEL: cosmetic fixes
1128
Miklos Szeredic6ee9fd2005-01-10 09:53:04 +000011292005-01-10 Miklos Szeredi <miklos@szeredi.hu>
1130
1131 * Released 2.2-pre3
1132
11332005-01-10 Miklos Szeredi <miklos@szeredi.hu>
1134
1135 * Add missing code that was accidently left out
1136
Miklos Szeredi8c7da232005-01-09 12:27:41 +000011372005-01-09 Miklos Szeredi <miklos@szeredi.hu>
1138
Miklos Szeredi8d775f72005-01-09 20:22:53 +00001139 * Released 2.2-pre2
1140
11412005-01-09 Miklos Szeredi <miklos@szeredi.hu>
1142
Miklos Szeredi3c7d41b2005-01-09 20:05:27 +00001143 * Change "uid" mount option to "user_id" to avoid confusion with a
1144 mount option "uid" commonly used by many filesystems
1145
11462005-01-09 Miklos Szeredi <miklos@szeredi.hu>
1147
Miklos Szeredi8c7da232005-01-09 12:27:41 +00001148 * Released 2.2-pre1
1149
11502005-01-09 Miklos Szeredi <miklos@szeredi.hu>
1151
1152 * If FUSE is configured in the kernel, don't build it by default
1153
Miklos Szeredi2a927272005-01-07 11:14:15 +000011542005-01-07 Miklos Szeredi <miklos@szeredi.hu>
1155
1156 * Compile fix by Christian Magnusson
1157
Miklos Szeredib6220192005-01-05 16:19:10 +000011582005-01-05 Miklos Szeredi <miklos@szeredi.hu>
1159
1160 * Fix compilation for 2.6.{0-5} kernels
1161
Miklos Szeredi0f62d722005-01-04 12:45:54 +000011622005-01-04 Miklos Szeredi <miklos@szeredi.hu>
1163
1164 * KERNEL: if request is interrupted, still keep reference to used
1165 inode(s) and file, so that FORGET and RELEASE are not sent until
1166 userspace finishes the request.
1167
Miklos Szeredi3f0005f2005-01-04 19:24:31 +00001168 * remove /{sys,proc}/fs/fuse/version, and instead add an INIT
1169 request with the same information, which is more flexible,
1170 simpler, works on embedded systems.
1171
Miklos Szeredi0f62d722005-01-04 12:45:54 +000011722004-12-16 Miklos Szeredi <miklos@szeredi.hu>
1173
1174 * KERNEL ABI: update interface to make it independent of type
1175 sizes. This will help on 64 bit architectures which can run
1176 legacy 32 bit applications.
1177
1178 * KERNEL ABI: add "len" field to request headers. This will allow
1179 sending/receiving requests in multiple chunks.
1180
1181 * KERNEL: handle file type change more intelligently
1182
1183 * LIB: "-o debug" option should disable backgrounding (fix by
1184 Fabien Reygrobellet)
1185
Miklos Szeredi0fcfa032004-12-13 15:22:28 +000011862004-12-13 Miklos Szeredi <miklos@szeredi.hu>
1187
1188 * KERNEL: invalidate dentry/attributes if interrupted request
1189 could leave filesystem in an unknown state.
1190
Miklos Szeredie56818b2004-12-12 11:45:24 +000011912004-12-12 Miklos Szeredi <miklos@szeredi.hu>
1192
1193 * KERNEL: lots of cleanups related to avoiding possible deadlocks.
1194 These will cause some regressions, but stability is considered
1195 more important. If any of these features turns out to be
1196 important, it can be readded with the deadlock problems addressed.
Miklos Szeredie5183742005-02-02 11:14:04 +00001197
Miklos Szeredie56818b2004-12-12 11:45:24 +00001198 * Make all requests interruptible (only with SIGKILL currently).
1199 This can be used to break any deadlock produced by the userspace
1200 filesystem accessing it's own exported files. The RELEASE request
1201 is special, because if it's interrupted before sending it to
1202 userspace it is still sent, but the reply is not awaited.
1203
1204 * If request is interrupted before being sent to userspace, and if
1205 it hasn't yet got any side effects, it is always restarted,
1206 regardless of the SA_RESTART flag. This makes these interruptions
1207 transparent to the process.
1208
1209 * Remove shared-writable mmap support, which was prone to an
1210 out-of-memory deadlock situation
1211
1212 * Remove INVALIDATE userspace initiated request
1213
1214 * Make readpages() synchronous. Asynchronous requests are
1215 deadlock prone, since they cannot be interrupted.
1216
1217 * Add readv/writev support to fuse device operations
1218
1219 * Remove some printks, which userspace FS can use for a DoS
1220 against syslog
1221
1222 * Remove 'large_read' mount option from 2.6 in kernel, check it in
1223 fusermount instead
1224
1225 * LIB: improve compatibility with a fuse.h header installed in
1226 ${prefix}/include which in turn includes the real header.
1227
1228 * LIB: improve compatibility by defining fuse_main() (which is now
1229 not used), so old configure scripts find it.
1230
Miklos Szeredi0adcc6f2004-12-10 11:55:25 +000012312004-12-10 Miklos Szeredi <miklos@szeredi.hu>
1232
1233 * When mounting on a subdirectory of / don't duplicate slashes at
1234 the beggining of path (spotted by David Shaw)
1235
Miklos Szeredi80a0c3c2004-12-09 17:30:59 +000012362004-12-09 Miklos Szeredi <miklos@szeredi.hu>
1237
1238 * Fix bug causing garbage in mount options (spotted by David Shaw)
1239
Miklos Szeredid59bb9d2004-12-07 10:04:24 +000012402004-12-07 Miklos Szeredi <miklos@szeredi.hu>
1241
1242 * Add 'writepage' flag to 'fuse_file_info'.
1243
1244 * More comments in fuse.h
1245
Miklos Szeredif458b8c2004-12-07 16:46:42 +00001246 * Get rid of double underscores
1247
Miklos Szeredi799993c2004-12-04 21:20:05 +000012482004-12-04 Miklos Szeredi <miklos@szeredi.hu>
1249
1250 * Add -D_FILE_OFFSET_BITS=64 to cflags provided by pkg-config
1251
1252 * helper.c: add -ho option, which only displays the options not
1253 the usage header. This can be used by filesystems which have
1254 their own options.
1255
Miklos Szeredi0b6a0ad2004-12-04 00:40:50 +000012562004-12-03 Miklos Szeredi <miklos@szeredi.hu>
1257
1258 * Add source compatibility to 2.1 and 1.1 APIs. To select betwen
1259 versions simply define FUSE_USE_VERSION to 22, 21 or 11 before
1260 including the fuse header
1261
1262 * Add binary compatibility to 2.1 version of library with symbol
1263 versioning
1264
Miklos Szeredi3c7d41b2005-01-09 20:05:27 +000012652004-12-03 Miklos Szeredi <miklos@szeredi.hu>
1266
1267 * Released 2.1
1268
Miklos Szeredi039322d2004-12-01 18:39:12 +000012692004-12-01 Miklos Szeredi <miklos@szeredi.hu>
1270
1271 * kernel: clean up writing functions
1272
1273 * kernel: no allocation on write in direct_io mode
1274
Miklos Szeredib9b94cd2004-12-01 18:56:39 +00001275 * move linux/fuse.h to fuse_kernel.h
1276
Miklos Szeredi83a07442004-11-30 18:25:20 +000012772004-11-30 Miklos Szeredi <miklos@szeredi.hu>
1278
1279 * kernel: clean up reading functions
1280
Miklos Szeredi2defe5e2004-11-29 16:53:44 +000012812004-11-29 Miklos Szeredi <miklos@szeredi.hu>
1282
1283 * kernel: make readpage() uninterruptible
1284
Miklos Szeredi96dfad72004-11-30 00:00:02 +00001285 * kernel: check readonly filesystem flag in fuse_permission
1286
1287 * lib: don't die if version file not found and new style device
1288 exists
1289
1290 * lib: add '-r' option, which is short for '-o ro'
1291
1292 * fusermount: simplify device opening
1293
Miklos Szeredi2defe5e2004-11-29 16:53:44 +00001294 * kernel: when direct_io is turend on, copy data directly to
1295 destination without itermediate buffer. More efficient and safer,
1296 since no allocation is done.
1297
1298 * fusermount: fix warning if fuse module is not loaded
Miklos Szeredi162bcbb2004-11-29 23:43:44 +00001299
1300 * kernel: use /dev/fuse on 2.4 too
Miklos Szeredie5183742005-02-02 11:14:04 +00001301
Miklos Szeredifb28c5e2004-11-26 12:15:06 +000013022004-11-26 Miklos Szeredi <miklos@szeredi.hu>
1303
1304 * libfuse API change: open, read, write, flush, fsync and release
1305 are passed a 'struct fuse_file_info' pointer containing the open
1306 flags (open and release), and the file handle. Verion changed to
1307 3.0.
1308
Miklos Szeredia25d4c22004-11-23 22:32:16 +000013092004-11-23 Miklos Szeredi <miklos@szeredi.hu>
1310
1311 * More cleanups in the kernel
1312
1313 * The 10,229 charater device number has been assigned for FUSE
1314
1315 * Version file checking fix (reported by Christian Magnusson)
1316
1317 * fusermount: opening the fuse device now doesn't need /sys.
1318
1319 * Optimize reading by controlling the maximum readahead based on
1320 the 'max_read' mount option
1321
1322 * fixes for UCLIBC (Christian Magnusson)
1323
Miklos Szeredi13ed4822004-11-20 11:12:21 +000013242004-11-19 Miklos Szeredi <miklos@szeredi.hu>
1325
1326 * Cleaned up kernel in preparation for merge into mainline:
1327
1328 * Use /sys/fs/fuse/version instead of /proc/fs/fuse/version
1329
1330 * Use real device (/dev/fuse) instead of /proc/fs/fuse/dev
1331
1332 * __user annotations for sparse
1333
1334 * allocate individual pages instead of kmalloc in fuse_readdir,
1335 fuse_read and fuse_write.
1336
1337 * Fix NFS export in case "use_ino" mount option is given
1338
Miklos Szeredif3845c42004-11-20 11:18:34 +00001339 * Make libfuse and fusermount compatible with future versions
1340
1341 * fusermount: properly add mount options to /etc/mtab
1342
13432004-11-15 Miklos Szeredi <miklos@szeredi.hu>
1344
1345 * fusermount: do not resolve last component of mountpoint on if it
1346 is '.' or '..'. This new path resolvation is now done on mount as
1347 well as unmount. This enables relative paths to work on unmount.
1348
1349 * fusermount: parse common mount options like "ro", "rw", etc...
1350
1351 * Allow module params to be changed through sysfs
1352
Miklos Szeredi08ddb8e2004-11-14 09:19:51 +000013532004-11-14 Miklos Szeredi <miklos@szeredi.hu>
1354
1355 * Released 2.1-pre1
1356
13572004-11-14 Miklos Szeredi <miklos@szeredi.hu>
1358
1359 * Fix bug in fuse_readpages() causing Oops in certain situations.
1360 Bug found by Vincenzo Ciancia.
1361
1362 * Fix compilation with kernels versions > 2.6.9.
1363
Miklos Szeredi3a6ea062004-11-11 10:33:58 +000013642004-11-11 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi51ec1032004-11-10 11:52:26 +00001365
Miklos Szeredi3a6ea062004-11-11 10:33:58 +00001366 * Check kernel interface version in fusermount to prevent
1367 strangeness in case of mismatch.
Miklos Szeredi51ec1032004-11-10 11:52:26 +00001368
Miklos Szeredi3d60e762004-11-11 14:44:04 +00001369 * No need to allocate fuse_conn until actual mount happens
1370
1371 * Fix potential race between umount and fuse_invalidate
1372
1373 * Check superblock of proc file in addition to inode number
1374
Miklos Szeredi08ddb8e2004-11-14 09:19:51 +00001375 * Fix race between request_send_noreply() and fuse_dev_release()
Miklos Szeredi3d60e762004-11-11 14:44:04 +00001376
Miklos Szeredi51ec1032004-11-10 11:52:26 +000013772004-11-10 Miklos Szeredi <miklos@szeredi.hu>
1378
1379 * Separate configure for the kernel directory
1380
Miklos Szeredi3a6ea062004-11-11 10:33:58 +00001381 * Don't allow write to return more than 'count'
1382
1383 * Extend kernel interface for future use
1384
Miklos Szeredi51ec1032004-11-10 11:52:26 +000013852004-11-09 Miklos Szeredi <miklos@szeredi.hu>
1386
1387 * Fix 'makeconf.sh' to use autoreconf if available
1388
Miklos Szeredi8fb48fe2004-11-08 14:48:52 +000013892004-11-08 Miklos Szeredi <miklos@szeredi.hu>
1390
Miklos Szeredid507c732004-11-08 17:32:25 +00001391 * Add ino argument to 'fuse_dirfil_t'. NOTE: This breaks source
1392 compatibility with earlier versions. To compile earier versions
1393 just add '-DFUSE_DIRFIL_COMPAT' compile flag or fix the source.
1394 Do not use the "use_ino" mount flag with filesystems compiled with
1395 FUSE_DIRFIL_COMPAT.
Miklos Szeredidb1c3652004-11-08 21:11:53 +00001396
1397 * Add pkg-config support. To compile a FUSE based filesystem you
1398 can do "gcc -Wall `pkg-config --cflags --libs fuse` myfs.c -o myfs"
1399 or similar. Note, that the PKG_CONFIG_PATH environment variable
1400 usually needs to be set to "/usr/local/lib/pkgconfig".
1401
1402 * fuse.h is now installed in ${prefix}/include/fuse/
Miklos Szeredie5183742005-02-02 11:14:04 +00001403
Miklos Szeredia13d9002004-11-02 17:32:03 +000014042004-11-02 Miklos Szeredi <miklos@szeredi.hu>
1405
1406 * Added "use_ino" mount option. This enables the filesystems to
1407 set the st_ino field on files
1408
Miklos Szeredib1ab8b52004-11-01 10:57:41 +000014092004-11-01 Miklos Szeredi <miklos@szeredi.hu>
1410
1411 * Fix compile problems with ancient (<=2.4.18) kernels (reported
1412 by Jeremy Smith)
1413
Miklos Szeredi874e3c12004-11-01 23:15:20 +00001414 * Add "allow_root" mount option. Patch by Yaroslav Rastrigin
1415
1416 * Clear the 'exited' flag when mail loop is finished
1417
Miklos Szeredie989f0d2004-10-28 20:24:58 +000014182004-10-28 Miklos Szeredi <miklos@szeredi.hu>
1419
1420 * Make xattr functions work under 2.6 (bug found by Vincenzo
1421 Ciancia)
1422
Miklos Szeredi95a2bfc2004-10-26 21:32:13 +000014232004-10-26 Miklos Szeredi <miklos@szeredi.hu>
1424
1425 * Reset request in fuse_flush() (bugreport by David Shaw)
1426
Miklos Szeredi5dc8a802004-10-21 09:35:10 +000014272004-10-21 Miklos Szeredi <miklos@szeredi.hu>
1428
Miklos Szeredi0e70aa72004-10-21 16:24:29 +00001429 * fuse_main() now does not exit on error, rather it returns an
Miklos Szeredi5dc8a802004-10-21 09:35:10 +00001430 error code
1431
Miklos Szeredifb97a1b2004-10-21 09:59:13 +00001432 * Exported __fuse_setup() and __fuse_teardown() functions, which
Miklos Szeredi5dc8a802004-10-21 09:35:10 +00001433 make it easier to implement a custom event loop.
1434
Miklos Szeredifb97a1b2004-10-21 09:59:13 +00001435 * Use daemon() call to background the filesystem after mounting.
1436 This function closes the standard input, output and error and
1437 changes the current working directory to "/".
1438
Miklos Szeredi127d49b2004-10-14 13:33:39 +000014392004-10-14 Miklos Szeredi <miklos@szeredi.hu>
1440
1441 * Released 1.9
1442
Miklos Szeredid45baf42004-10-10 07:56:12 +000014432004-10-09 Miklos Szeredi <miklos@szeredi.hu>
1444
1445 * Don't allow fuse_flush() to be interrupted (bug found by David
1446 Shaw)
1447
Miklos Szeredi1f18db52004-09-27 06:54:49 +000014482004-09-27 Miklos Szeredi <miklos@szeredi.hu>
1449
1450 * Add PID to fuse_context. Patch by Steven James
1451
Miklos Szeredi1eea0322004-09-27 18:50:11 +00001452 * Change file handle type to 'unsigned long' in kernel interface
1453
Miklos Szeredid169f312004-09-22 08:48:26 +000014542004-09-22 Miklos Szeredi <miklos@szeredi.hu>
1455
1456 * A slight API change: fuse_get_context() doesn't need the "fuse"
1457 pointer, but the returned context contains it instead. The
1458 fuse_get() function is not needed anymore, so it's removed.
Miklos Szeredi21d587e2004-09-22 16:47:40 +00001459
1460 * Fix mounting and umounting FUSE filesystem under another FUSE
1461 filesystem by non-root (bug spotted by Valient Gough)
Miklos Szeredie5183742005-02-02 11:14:04 +00001462
Miklos Szeredic2309912004-09-21 13:40:38 +000014632004-09-21 Miklos Szeredi <miklos@szeredi.hu>
1464
1465 * Fix deadlock in case of memory allocation failure. Patch by
1466 Christian Magnusson
Miklos Szeredie5183742005-02-02 11:14:04 +00001467
Miklos Szeredib2cf9562004-09-16 08:42:40 +000014682004-09-16 Miklos Szeredi <miklos@szeredi.hu>
1469
1470 * Check memory allocation failures in libfuse
Miklos Szeredie5183742005-02-02 11:14:04 +00001471
Miklos Szeredi65afea12004-09-14 07:13:45 +000014722004-09-14 Miklos Szeredi <miklos@szeredi.hu>
1473
1474 * Check temporary file creation failure in do_getdir(). Bug
1475 spotted by Terje Oseberg
Miklos Szeredie5183742005-02-02 11:14:04 +00001476
Miklos Szeredi1bf53ee2004-09-13 11:47:59 +000014772004-09-13 Miklos Szeredi <miklos@szeredi.hu>
1478
1479 * Allow "large_read" option for 2.6 kernels but warn of deprecation
Miklos Szeredi09045c32004-09-13 12:00:49 +00001480
1481 * Make requests non-interruptible so race with FORGET is avoided.
1482 This is only a temporary solution
Miklos Szeredi442d9652004-09-13 14:56:57 +00001483
1484 * Support compiling FUSE kernel module on 2.4.x UML kernels
Miklos Szeredie5183742005-02-02 11:14:04 +00001485
Miklos Szeredi8b2d3332004-09-09 08:44:01 +000014862004-09-09 Miklos Szeredi <miklos@szeredi.hu>
1487
1488 * Fix bug in case two FORGETs for the same node are executed in
1489 the wrong order. Bug spotted and endured for months by Franco
1490 Broi, and logfile for solution provided by Terje Oseberg
1491
Miklos Szeredi12085102004-09-02 18:13:57 +000014922004-09-01 Miklos Szeredi <miklos@szeredi.hu>
1493
1494 * Add -D_REENTRANT to the compile flags
1495
1496 * Add documentation of fuse internals by Terje Oseberg
Miklos Szeredie5183742005-02-02 11:14:04 +00001497
Miklos Szeredi22ea3dc2004-08-16 13:29:11 +000014982004-08-16 Miklos Szeredi <miklos@szeredi.hu>
1499
1500 * Change release method to be non-interruptible. Fixes bug
1501 causing missing release() call when program which has opened files
1502 is killed (reported by Franco Broi and David Shaw)
Miklos Szeredie5183742005-02-02 11:14:04 +00001503
Miklos Szeredi891b8742004-07-29 09:27:49 +000015042004-07-29 Miklos Szeredi <miklos@szeredi.hu>
1505
1506 * Add fuse_invalidate() to library API
1507
Miklos Szeredi94ed76a2004-07-26 19:38:45 +000015082004-07-26 Miklos Szeredi <miklos@szeredi.hu>
1509
1510 * Check permissions in setattr if 'default_permissions' flag is
1511 set. Bug spotted by Damjan Lango
1512
Miklos Szeredid66d3942004-07-24 13:47:44 +000015132004-07-24 Miklos Szeredi <miklos@szeredi.hu>
1514
Miklos Szeredi209f5d02004-07-24 19:56:16 +00001515 * 'large_read' mount option removed for 2.6 kernels, since the
1516 default (dynamic read size) is better
1517
1518 * Extend kernel API with file handles. A file handle is returned
1519 by open, and passed to read, write, flush, fsync and release.
1520 This is currently only used for debug output in the library.
Miklos Szeredie5183742005-02-02 11:14:04 +00001521
Miklos Szeredi209f5d02004-07-24 19:56:16 +00001522 * Security changes:
1523
1524 * Change the current directory to the mountpoint before checking
1525 the permissions and mount filesystem on "."
1526
1527 * By default don't modprobe the fuse module for non-root. The old
1528 behavior can be restored with the '--enable-auto-modprobe' flag of
1529 ./configure
1530
1531 * By default don't allow shared writable mappings for non-root.
1532 The old behavior can be restored with the 'user_mmap=1' module
1533 parameter
Miklos Szeredid66d3942004-07-24 13:47:44 +00001534
Miklos Szeredibd7661b2004-07-23 17:16:29 +000015352004-07-23 Miklos Szeredi <miklos@szeredi.hu>
1536
1537 * Clean up mount option passing to fusermount and to fuse_new()
1538 BEWARE: this changes the userspace API slightly, and the command
1539 line usage of programs using fuse_main()
Miklos Szeredie5183742005-02-02 11:14:04 +00001540
Miklos Szeredi58865372004-07-20 14:22:26 +000015412004-07-20 Miklos Szeredi <miklos@szeredi.hu>
1542
1543 * Optimize reading under 2.6 kernels by issuing multiple page
1544 asynchronous read requests
Miklos Szeredie5183742005-02-02 11:14:04 +00001545
Miklos Szeredi84ba0f42004-07-18 11:32:59 +000015462004-07-18 Miklos Szeredi <miklos@szeredi.hu>
1547
1548 * Only use redirty_page_for_writepage() for kernels >= 2.6.6
Miklos Szeredie5183742005-02-02 11:14:04 +00001549
Miklos Szeredi069c9502004-07-16 16:17:02 +000015502004-07-16 Miklos Szeredi <miklos@szeredi.hu>
1551
1552 * Separate directory entry and inode attribute validity timer
1553
1554 * New write semaphore to stop page writeback during truncate
1555
1556 * Fsync now waits for all writes to complete before sending the
1557 request
1558
1559 * Optimization: if a page is completely written by
1560 fuse_commit_write(), clear the dirty flag and set the uptodate
1561 flag for that page
1562
Miklos Szeredie7d5d7d2004-07-16 18:27:50 +00001563 * Some memory cleanup at exit
1564
Miklos Szeredi2529ca22004-07-13 15:36:52 +000015652004-07-13 Miklos Szeredi <miklos@szeredi.hu>
1566
1567 * Add FUSE_HARD_REMOVE flag, and '-i' option to fuse main, which
Miklos Szerediad83d072004-07-13 20:23:03 +00001568 disable the "hide if open" behavior of unlink/rename.
1569
1570 * If temporary buffer allocation fails in raw read, fall back to a
1571 smaller buffer
Miklos Szeredie5183742005-02-02 11:14:04 +00001572
Miklos Szeredi73798f92004-07-12 15:55:11 +000015732004-07-12 Miklos Szeredi <miklos@szeredi.hu>
1574
1575 * Fix bug in do_open() in libfuse: open count was incremented
1576 after the reply is sent so it could race with unlink/forget and
1577 cause an abort.
Miklos Szeredie5183742005-02-02 11:14:04 +00001578
Miklos Szeredi015fe702004-07-12 11:52:24 +000015792004-07-08 Miklos Szeredi <miklos@szeredi.hu>
1580
1581 * When performing create or remove operation, refresh the parent's
1582 attributes on next revalidate, as i_nlink (and maybe size/time)
1583 could be inacurate.
1584
1585 * Use redirty_page_for_writepage() in fuse_writepage() for skipped
1586 pages (2.6 only)
1587
1588 * Set set_page_dirty address space operation (2.6 only)
1589
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000015902004-07-06 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi25385bb2004-07-06 22:27:36 +00001591
1592 * Minor fix in read: print debug info even if read size is zero
1593
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000015942004-07-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi58615e02004-07-04 21:21:08 +00001595
1596 * Fix race between truncate and writepage (fsx-linux now runs
1597 without error)
1598
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000015992004-07-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szerediad051c32004-07-02 09:22:50 +00001600
1601 * Fix kernel hang on mkfifo under 2.4 kernels (spotted and patch
1602 by Mattias Wadman)
1603
1604 * Added option for direct read/write (-r)
1605
1606 * Fix revalidate time setting for newly created inodes
1607
Miklos Szerediacb4d362004-07-02 16:20:45 +00001608 * Remove uid==0 check for '-x' option in fusermount (kernel checks
1609 this)
1610
1611 * fuse_main() only installs handlers for signals (out of INT, HUP,
1612 TERM, PIPE), for which no handler has yet been installed
1613
1614 * Add module option 'user_allow_other' which if set to non-zero
1615 will allow non root user to specify the 'allow_other' mount option
1616 ('-x' option of fusermount)
1617
Miklos Szeredi014d7d22004-07-02 21:22:37 +00001618 * Fix deadlock between page writeback completion and truncate
1619 (bug found by Valient Gough with the fsx-linux utility)
1620
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016212004-07-01 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szerediad051c32004-07-02 09:22:50 +00001622
1623 * Change passing fuse include dir to 2.6 kernel make system more
Miklos Szerediacb4d362004-07-02 16:20:45 +00001624 robust (fixes compile problems seen on SuSE 9.1 with updated 2.6
1625 kernel)
Miklos Szerediad051c32004-07-02 09:22:50 +00001626
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016272004-06-30 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi556d03d2004-06-30 11:13:41 +00001628
1629 * Acquire inode->i_sem before open and release methods to prevent
1630 concurrent rename or unlink operations.
1631
Miklos Szeredi65cf7c72004-06-30 11:34:56 +00001632 * Make __fuse_read_cmd() read only one command. This allows
1633 multiplexing the fuse file descriptor with other event sources
1634 using select() or poll() (patch by Jeff Harris)
1635
1636 * Export 'exited' flag with __fuse_exited() (patch by Jeff Harris)
1637
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016382004-06-27 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi71e9f862004-06-28 16:52:16 +00001639
1640 * Fix file offset wrap around at 4G when doing large reads
1641
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016422004-06-24 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi1ea9c962004-06-24 21:00:00 +00001643
Miklos Szeredi9a31cca2004-06-26 21:11:25 +00001644 * Fix memory leak in open (Valient Gough)
1645
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016462004-06-24 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi9a31cca2004-06-26 21:11:25 +00001647
Miklos Szeredi1ea9c962004-06-24 21:00:00 +00001648 * Add "close after delete" support to libfuse (patch by Valient
1649 Gough)
1650
1651 * Cancel all worker threads before exit in multithreaded mode
1652
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016532004-06-23 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie79dc7e2004-06-23 05:57:30 +00001654
1655 * Fix locking bugs
Miklos Szeredib3210582004-06-23 13:54:33 +00001656
1657 * Don't send reply to RELEASE
Miklos Szeredicb264512004-06-23 18:52:50 +00001658
1659 * Work with newer libtool (1.5a)
1660
1661 * Check for st_atim member of struct stat
Miklos Szeredie5183742005-02-02 11:14:04 +00001662
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016632004-06-22 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredid3dd2d52004-06-22 18:46:02 +00001664
1665 * No request allocation needed on inode and file release
Miklos Szeredie5183742005-02-02 11:14:04 +00001666
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016672004-06-21 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi2778f6c2004-06-21 09:45:30 +00001668
1669 * Fix possible inode leak in userspace in case of unfinished
1670 lookup/mknod/mkdir/symlink/link operation.
Miklos Szeredie5183742005-02-02 11:14:04 +00001671
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016722004-06-20 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredied62d862004-06-20 08:57:39 +00001673
1674 * Fix some races and cleanups in fuse_read_super()
Miklos Szeredie5183742005-02-02 11:14:04 +00001675
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016762004-06-19 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi7eafcce2004-06-19 22:42:38 +00001677
1678 * Requests are allocated at open time
Miklos Szeredie5183742005-02-02 11:14:04 +00001679
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016802004-06-03 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi203afbf2004-06-03 13:21:08 +00001681
1682 * Build shared library as well as static (using libtool)
1683
1684 * Change FUSE_MINOR_VERSION from 1 to 0. I know it's illegal but
1685 there has not been a release with the previous minor number, and I
1686 hope nobody is using it for anything.
Miklos Szerediff875352004-06-03 13:52:40 +00001687
1688 * Change fuse_main(), so that default behavior is to go into
1689 background if mount is successful. '-f' and '-d' options disable
1690 backgrounding. This fixes the "Why does my FUSE daemon hang?"
1691 newbie complaint.
Miklos Szeredi63b8c1c2004-06-03 14:45:04 +00001692
1693 * Cache ENOSYS (function not implemented) errors on *xattr, flush
1694 and fsync
Miklos Szeredi152f29e2004-06-03 17:52:32 +00001695
1696 * Don't call getdir method from open() only from first readdir().
1697 Open is sometimes just used to store the current directory
1698 (e.g. find)
Miklos Szeredie5183742005-02-02 11:14:04 +00001699
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017002004-05-18 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie2e4ac22004-05-18 08:45:28 +00001701
1702 * Added flush() call
Miklos Szeredie5183742005-02-02 11:14:04 +00001703
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017042004-05-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi689f5632004-05-04 08:49:16 +00001705
1706 * Extended attributes support for 2.4 (patch by Cody Pisto)
Miklos Szeredie5183742005-02-02 11:14:04 +00001707
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017082004-04-20 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredid30a0f22004-04-20 08:25:43 +00001709
1710 * Fixed parser with modversions (Mattias Wadman)
Miklos Szeredie5183742005-02-02 11:14:04 +00001711
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017122004-04-19 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi8ec48ec2004-04-19 10:24:41 +00001713
1714 * Added mount option parser to 2.4 build
Miklos Szeredie5183742005-02-02 11:14:04 +00001715
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017162004-04-13 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi87f30a92004-04-13 10:49:54 +00001717
1718 * Replaced binary mount data with text options
1719
1720 * Show FUSE specific mount options in /proc/mounts
1721
1722 * Check in fuse.h whether _FILE_OFFSET_BITS is set to 64
1723
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017242004-04-09 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredic26c14d2004-04-09 17:48:32 +00001725
1726 * Check some limits so userspace won't get too big requests
1727
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017282004-04-05 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi2ac5e2a2004-04-05 11:24:24 +00001729
1730 * Kill compile warning
1731
1732 * Upgraded user-mount patch for 2.6.5
1733
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017342004-04-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi851948c2004-04-02 14:58:22 +00001735
1736 * Add detection of user-mode-linux to configure
1737
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017382004-03-31 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi03cebae2004-03-31 10:19:18 +00001739
1740 * fixed zero size case for getxattr and listxattr
1741
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017422004-03-30 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi98667e22004-03-30 07:24:29 +00001743
1744 * new fusermount flag '-z': lazy unmount, default is not lazy
1745
Miklos Szeredi3ed84232004-03-30 15:17:26 +00001746 * Extended attributes operations added (getxattr, setxattr,
1747 listxattr, removexattr)
1748
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017492004-03-25 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi77f39942004-03-25 11:17:52 +00001750
1751 * If filesystem doesn't define a statfs operation, then an
1752 all-zero default statfs is returned instead of ENOSYS
1753
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017542004-03-24 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi4df9cf22004-03-24 09:19:27 +00001755
1756 * Add FS_BINARY_MOUNTDATA filesystem flag for kernels > 2.6.4
1757
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017582004-03-09 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi254d5ed2004-03-02 11:11:24 +00001759
Miklos Szeredi8af63ae2004-03-09 10:54:17 +00001760 * Fix for uClinux (Christian Magnusson)
1761
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017622004-03-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi8af63ae2004-03-09 10:54:17 +00001763
Miklos Szeredi18c1e4d2004-03-02 16:18:30 +00001764 * fuse_main() adds "-n progname" to the fusermount command line
Miklos Szeredie5183742005-02-02 11:14:04 +00001765
Miklos Szeredi254d5ed2004-03-02 11:11:24 +00001766 * More kernel interface changes:
1767
1768 * Lookup/getattr return cache timeout values
1769
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017702004-02-25 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie970f302004-02-25 08:39:42 +00001771
1772 * Clean up option parsing in fuse_main()
1773
Miklos Szeredi33c319c2004-02-25 09:19:29 +00001774 * Added fuse_get() function which returns the fuse object created
1775 by fuse_main()
1776
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017772004-02-20 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredib5958612004-02-20 14:10:49 +00001778
Miklos Szeredic40748a2004-02-20 16:38:45 +00001779 * removed old way of mounting (fusermount mountpoint program)
1780
Miklos Szeredib5958612004-02-20 14:10:49 +00001781 * more kernel interface changes:
1782
1783 * added nanosecond precision to file times
1784
Miklos Szeredic40748a2004-02-20 16:38:45 +00001785 * removed interface version from mount data
1786
1787 * added /proc/fs/fuse/version which contains MAJOR.MINOR
1788
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017892004-02-19 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi18e75e42004-02-19 14:23:27 +00001790
1791 * statfs library API changed to match other methods. Since this
1792 is not backward compatible FUSE_MAJOR_VERSION is changed to 2
1793
Miklos Szeredi76f65782004-02-19 16:55:40 +00001794 * kernel interface changes follow:
1795
1796 * statfs changed to 64 bits, added 'bavail' field
1797
1798 * add generation number to lookup result
1799
1800 * optimized mknod/mkdir/symlink/link (no separate lookup is
1801 needed)
1802
1803 * rdev size increased to 32 bits for mknod
1804
1805 * kernel interface version changed to 3.1
Miklos Szeredie5183742005-02-02 11:14:04 +00001806
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018072004-02-18 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredifa39e902004-02-18 13:29:36 +00001808
1809 * user-mount upgraded for 2.6.3 kernel
Miklos Szeredie5183742005-02-02 11:14:04 +00001810
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018112004-02-17 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi69cc79a2004-02-17 08:57:29 +00001812
1813 * Added user-mount.2.6.2-rc3.patch
1814
1815 * Add FS_SAFE flag to fuse filesystem
1816
1817 * fusermount should allow (un)mounting for non-root even if not
1818 suid-root
Miklos Szeredie5183742005-02-02 11:14:04 +00001819
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018202004-02-12 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi4c7f7622004-02-12 13:41:30 +00001821
1822 * Remove MS_PERMISSION mount flag (that means something else now)
Miklos Szeredie5183742005-02-02 11:14:04 +00001823
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018242004-02-10 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi9a2b08d2004-02-10 09:36:07 +00001825
1826 * Added check for i_size_read/write functions to configure.in
1827 (patch by Valient Gough)
1828
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018292004-02-06 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi377b2ea2004-02-06 09:48:51 +00001830
1831 * Fixed writing >= 2G files
Miklos Szeredif58cc612004-02-06 13:52:00 +00001832
1833 * Check file size on open (with generic_file_open())
Miklos Szeredid1199f82004-02-06 15:29:22 +00001834
1835 * Readpage calls flush_dcache_page() after storing data
1836
1837 * Use i_size_read/write for accessing inode->i_size
Miklos Szeredi89b86af2004-02-06 17:02:08 +00001838
1839 * Make loopback mount of a fuse file work
Miklos Szeredie5183742005-02-02 11:14:04 +00001840
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018412004-02-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi88124792004-02-04 11:06:17 +00001842
1843 * Released 1.1
Miklos Szeredie5183742005-02-02 11:14:04 +00001844
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018452004-01-29 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi72f6a932004-01-29 11:29:18 +00001846
1847 * Properly check if the inode exists in fuse_invalidate
Miklos Szeredie5183742005-02-02 11:14:04 +00001848
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018492004-01-27 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szerediedf26632004-01-27 14:54:47 +00001850
1851 * Added -q option for fusermount
1852
1853 * fuse_unmount() now uses -q option of fusermount, so no error is
1854 printed if the cause of the program exit is that the filesystem
1855 has already been unmounted
1856
Miklos Szeredif4f8b892004-01-27 17:04:59 +00001857 * Fix i_nlink correctness after rmdir/unlink
1858
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018592004-01-26 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi307242f2004-01-26 11:28:44 +00001860
Miklos Szeredib1158392004-01-26 14:43:12 +00001861 * Released 1.1-pre2
1862
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018632004-01-26 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredib1158392004-01-26 14:43:12 +00001864
Miklos Szeredi307242f2004-01-26 11:28:44 +00001865 * Fix typo (thanks Marcos Dione)
Miklos Szeredib1158392004-01-26 14:43:12 +00001866
1867 * Compile fixes for 2.4 kernels
Miklos Szeredie5183742005-02-02 11:14:04 +00001868
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018692004-01-23 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi307242f2004-01-26 11:28:44 +00001870
1871 * Fix CONFIG_MODVERSIONS compile on 2.6
Miklos Szeredie5183742005-02-02 11:14:04 +00001872
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018732004-01-22 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi307242f2004-01-26 11:28:44 +00001874
1875 * Write all pending data before a RELEASE operation
1876
1877 * Suppress 'Bad file descriptor' warning on exit
1878
1879 * Replaced fusermount option '-d xxx' with '-n xxx' so it doesn't
Miklos Szeredib1158392004-01-26 14:43:12 +00001880 get confused with '-d' of fuse_main() (sorry about this change)
Miklos Szeredi307242f2004-01-26 11:28:44 +00001881
Miklos Szeredib1158392004-01-26 14:43:12 +00001882 * New fusermount option '-l' which enables big reads. Big reads
1883 are now disabled by default.
Miklos Szeredi307242f2004-01-26 11:28:44 +00001884
1885 * fuse_main() can accept fusermount arguments after a '--'
1886
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018872004-01-19 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie815c032004-01-19 18:20:49 +00001888
1889 * Support for exporting filesystem over NFS (see README.NFS)
1890
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018912004-01-14 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi7c35cf92004-01-14 16:56:49 +00001892
1893 * Support non-blocking writepage on 2.6. This makes FUSE behave
1894 much more nicely in low-memory situations
1895
1896 * Fix 32-bit dev handling in getattr and mknod for 2.6 kernels.
1897 (Note: the mknod method does not yet use 32bit device number)
Miklos Szeredie5183742005-02-02 11:14:04 +00001898
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018992004-01-13 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie8663f32004-01-13 15:33:12 +00001900
1901 * Code cleanups
1902
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019032004-01-07 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi4b7abe32004-01-07 16:49:12 +00001904
1905 * Released 1.1-pre1
1906
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019072004-01-06 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredif85ab242004-01-07 12:16:45 +00001908
1909 * Integrated 2.6 kernel support patch by Michael Grigoriev
1910
1911 * Improvements and cleanups for 2.6 kernels
1912
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019132004-01-05 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi7ffb8cf2004-01-05 15:07:12 +00001914
Miklos Szeredie5183742005-02-02 11:14:04 +00001915 * Added -d option to fusermount
Miklos Szeredi7ffb8cf2004-01-05 15:07:12 +00001916
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019172003-12-15 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi2f3d9402003-12-15 12:11:33 +00001918
1919 * Added major+minor version to library API, and minor version to
1920 kernel API
1921
David McNab7a19caf2003-12-13 02:05:46 +000019222003-12-13 David McNab <david@rebirthing.co.nz>
1923
1924 * Implemented fsync support in examples/example.py
1925
1926 * Implemented 'fsync' and 'statfs' methods in python
1927 interface
1928
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019292003-12-12 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie4cf7332003-12-12 11:53:31 +00001930
Miklos Szeredie5183742005-02-02 11:14:04 +00001931 * Make it compile on 2.4.19.
Miklos Szeredie4cf7332003-12-12 11:53:31 +00001932
Miklos Szeredi5e43f2c2003-12-12 14:06:41 +00001933 * Add fsync operation (write file failed on xemacs & vi)
Miklos Szeredie4cf7332003-12-12 11:53:31 +00001934
David McNab8bf62632003-12-11 22:49:22 +000019352003-12-12 David McNab <david@rebirthing.co.nz>
1936
1937 * Added distutils support to the python module, as per standard
1938 python development practice
1939
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019402003-12-11 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi874d95d2003-12-11 14:27:57 +00001941
1942 * Add file locking for mount/unmount (based on patch by Valient
1943 Gough)
1944
19452003-12-11 David McNab <david@rebirthing.co.nz>
1946
1947 * Python filesystem - was broken with python2.3, now fixed:
1948 - changed PyTuple_* calls to PySequence_*, because os.lstat
1949 is no longer returning a pure tuple
1950 - changed PyInt_Check() calls to also call PyLong_Check,
1951 to cover for cases (eg os.lstat) where longs are returned
1952 - Added support for file 'release' handling, which IMO is
1953 essential since this signals to a FS that writes to a file
1954 are complete (and therefore the file can now be disposed of
1955 meaningfully at the python filesystem's discretion)
1956 - Added '__init__' handler to base Fuse class, which allows
1957 your Python class to know the mountpoint and mount args,
1958 as attributes myfs.mountpoint, myfs.optlist, myfs.optdict
Miklos Szeredie5183742005-02-02 11:14:04 +00001959
Miklos Szeredi874d95d2003-12-11 14:27:57 +00001960 * General:
1961 - added 'mount.fuse' script (in util/ dir), which is meant to be
1962 symlinked from /sbin, and which allows FUSE filesystems to
1963 be mounted with the 'mount' command, and listed in fstab;
1964 also, mount arguments get passed to your filesystem
1965
1966
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019672003-11-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredif27ec7d2003-11-04 13:46:32 +00001968
1969 * Fix kernel version detection (again). Bugreport by Peter Levart
1970
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019712003-11-03 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi36ca5562003-11-03 19:32:14 +00001972
1973 * Applied read combining patch by Michael Grigoriev (tested by
1974 Valient Gough and Vincent Wagelaar)
1975
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019762003-10-22 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredif08ace02003-10-22 11:11:57 +00001977
1978 * Mtab handling fix in fusermount by "Valient Gough" (SF patch
1979 #766443)
Miklos Szeredie5183742005-02-02 11:14:04 +00001980
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019812003-10-13 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi0e535082003-10-13 10:08:06 +00001982
1983 * Error code fixes in kernel module
Miklos Szeredie5183742005-02-02 11:14:04 +00001984
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019852003-10-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi27af48b2003-10-04 17:31:38 +00001986
1987 * kernel version detection fix
1988
1989 * fusermount now uses "lazy" umount option
1990
1991 * fusermount can use modprobe with module-init-tools
1992
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019932003-09-08 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredida4e4862003-09-08 11:14:11 +00001994
1995 * Integrated caching patch by Michael Grigoriev
1996
Miklos Szeredida4e4862003-09-08 11:14:11 +00001997 * Added "Filesystems" file with descriptions of projects using
1998 FUSE
1999
Miklos Szeredi02ceb112003-09-08 13:52:25 +00002000 * Added patch by Michael Grigoriev to allow compliation of FUSE
2001 kernel module for 2.6 kernels
2002
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020032003-06-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi84838472003-06-02 06:12:27 +00002004
2005 * And another spec-file fix by Achim Settelmeier
2006
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020072003-05-26 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi21c282b2003-05-26 07:12:57 +00002008
2009 * Spec-file fix by Achim Settelmeier
2010
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020112003-03-10 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi79b461a2003-03-10 09:35:34 +00002012
Miklos Szerediac361172004-11-02 19:14:14 +00002013 * Fix umount oops (found by Samuli Kärkkäinen)
Miklos Szeredi79b461a2003-03-10 09:35:34 +00002014
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020152003-03-05 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi941ae4c2003-03-05 08:29:58 +00002016
2017 * Merge of fuse_redhat.spec and fuse.spec by Achim Settelmeier
2018
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020192003-03-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredia9b2f262003-03-04 09:37:20 +00002020
2021 * Updated fuse.spec file (Achim Settelmeier)
2022
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020232003-02-19 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredic0226bb2003-02-19 16:05:06 +00002024
2025 * Version 1.0 released
2026
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020272003-02-12 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredifa84e0d2003-02-13 09:53:33 +00002028
2029 * SuSE compilation fix by Juan-Mariano de Goyeneche
2030
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020312002-12-10 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredic8ba2372002-12-10 12:26:00 +00002032
2033 * The release() VFS call is now exported to the FUSE interface
2034
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020352002-12-05 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi0f48a262002-12-05 14:23:01 +00002036
2037 * 64 bit file offset fixes in the fuse kernel module
2038
2039 * Added function 'fuse_exit()' which can be used to exit the main
2040 loop
2041
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020422002-12-03 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi5f054812002-12-03 18:45:21 +00002043
2044 * Added _FILE_OFFSET_BITS=64 define to fuse.h. Note, that this is
2045 an incompatible interface change.
2046
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020472002-10-28 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi6bf8b682002-10-28 08:49:39 +00002048
2049 * Portablility fix (bug reported by C. Chris Erway)
2050
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020512002-10-25 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredid6e9f882002-10-25 11:40:14 +00002052
2053 * Use Mark Glines' fd passing method for default operation instead
2054 of old reexec
2055
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020562002-10-22 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi60c23522002-10-24 09:19:43 +00002057
Miklos Szeredi5e5d61f2002-10-24 11:50:33 +00002058 * fix "Stale NFS file handle" bug caused by changes in 2.4.19
2059
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020602002-10-22 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi5e5d61f2002-10-24 11:50:33 +00002061
Miklos Szeredi60c23522002-10-24 09:19:43 +00002062 * fix incompatiblity with Red Hat kernels, with help from Nathan
2063 Thompson-Amato.
2064
Mark Glines65ba2192002-04-18 14:41:48 +000020652002-04-18 Mark Glines <mark@glines.org>
2066
2067 * added an alternative to fuse_mount(), called
2068 fuse_mount_ioslave(), which does not need to reexec the
2069 FUSE program.
2070 * added a small helper util needed by fuse_mount_ioslave().
2071
Mark Glines220635a2002-03-17 07:01:14 +000020722002-03-16 Mark Glines <mark@glines.org>
2073
2074 * use struct fuse_statfs everywhere possible to avoid problems
2075 with the headerfiles changing struct statfs member sizes
2076
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020772002-03-01 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi081f3c22002-03-01 07:47:35 +00002078
2079 * Another RPM spec file for RedHat >= 7 by Ian Pilcher
2080
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020812002-01-14 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredif782fc42002-01-14 08:48:46 +00002082
2083 * RPM support by Achim Settelmeier
2084
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020852002-01-09 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi4b2bef42002-01-09 12:23:27 +00002086
Miklos Szerediddc862a2002-01-09 13:46:10 +00002087 * Version 0.95 released
Miklos Szeredie5183742005-02-02 11:14:04 +00002088
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020892002-01-09 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szerediddc862a2002-01-09 13:46:10 +00002090
Miklos Szeredi4b2bef42002-01-09 12:23:27 +00002091 * Revaidate all path components not just the last, this means a
2092 very small performance penalty for being more up-to-date.
2093
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020942002-01-08 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi4b2bef42002-01-09 12:23:27 +00002095
2096 * Update and fix python interface
2097
Mark Glinesd84b39a2002-01-07 16:32:02 +000020982002-01-07 Mark Glines <mark@glines.org>
Miklos Szeredie5183742005-02-02 11:14:04 +00002099
Mark Glinesd84b39a2002-01-07 16:32:02 +00002100 * Added statfs() support to kernel, lib, examples, and perl!
2101
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021022001-12-26 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi46a46dc2002-01-08 09:55:14 +00002103
2104 * Better cross compilation support
2105
2106 * Ported to Compaq IPAQ
2107
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021082001-12-20 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie5183742005-02-02 11:14:04 +00002109
Miklos Szeredife25def2001-12-20 15:38:05 +00002110 * Added function fuse_get_context() to library API (inspired by
Miklos Szeredie5183742005-02-02 11:14:04 +00002111 patch from Matt Ryan)
2112
Miklos Szeredife25def2001-12-20 15:38:05 +00002113 * Added flags to fusermount and to kernel interface to control
2114 permission checking
Miklos Szeredi8cffdb92001-11-09 14:49:18 +00002115
Miklos Szeredife25def2001-12-20 15:38:05 +00002116 * Integrated fuse_set_operations() into fuse_new()
2117
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021182001-12-08 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredife25def2001-12-20 15:38:05 +00002119
2120 * Applied header protection + extern "C" patch by Roland
2121 Bauerschmidt
2122
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021232001-12-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredife25def2001-12-20 15:38:05 +00002124
Miklos Szeredie5183742005-02-02 11:14:04 +00002125 * Added perl bindings by Mark Glines
Miklos Szeredife25def2001-12-20 15:38:05 +00002126
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021272001-11-21 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredife25def2001-12-20 15:38:05 +00002128
2129 * Cleaned up way of mounting simple filesystems.
2130
2131 * fuse_main() helper function added
2132
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021332001-11-18 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie5183742005-02-02 11:14:04 +00002134
Miklos Szeredife25def2001-12-20 15:38:05 +00002135 * Optimized read/write operations, so that minimal copying of data
2136 is done
2137
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021382001-11-14 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredife25def2001-12-20 15:38:05 +00002139
2140 * Python bindings by Jeff Epler added
Miklos Szeredi838c14f2001-11-14 08:16:20 +00002141
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021422001-11-13 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi838c14f2001-11-14 08:16:20 +00002143
2144 * Fixed vfsmount reference leak in fuse_follow_link
2145
2146 * FS blocksize is set to PAGE_CACHE_SIZE, blksize attribute from
2147 userspace is ignored
2148
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021492001-11-09 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi838c14f2001-11-14 08:16:20 +00002150
Miklos Szeredife25def2001-12-20 15:38:05 +00002151 * Started ChangeLog