blob: d35312fd13871bfae04e1f485bc67fb6e4e8ae4f [file] [log] [blame]
Miklos Szeredi38f152c2006-09-03 18:28:52 +000012006-09-03 Miklos Szeredi <miklos@szeredi.hu>
2
3 * lib: Multithreaded loop now allows unlimited number of threads.
4 This is needed for locking operations which may block
5 indefinitely. Also the kernel now doesn't limit the number of
6 outstanding requests so the library shouldn't do so either.
7
Miklos Szeredifa440772006-09-02 09:51:08 +000082006-09-01 Miklos Szeredi <miklos@szeredi.hu>
9
10 * Fix recursive lock bug in interrupt handling
11
12 * Add utimes() method to highlevel interface, which supports
13 setting times with nanosecond resolution
14
Miklos Szeredi63d3c402006-08-18 16:38:08 +0000152006-08-18 Miklos Szeredi <miklos@szeredi.hu>
16
17 * kernel: fix page leak if fuse_readpages() failed in it's
18 initialization. Bug found and original patch from Alexander
19 Zarochentsev
20
Miklos Szeredi3ded1a32006-08-18 18:43:50 +000021 * For linux kernels >=2.6.18 (2.6.19 if using the fuse module from
22 the kernel tree) the statfs method will receive the path within
Miklos Szeredid2bda142006-08-19 09:26:16 +000023 the filesystem on which the stat(v)fs syscall was called
Miklos Szeredi3ded1a32006-08-18 18:43:50 +000024
Miklos Szeredi543087d2006-08-18 19:26:23 +000025 * fusermount: try to modprobe fuse module if invoked by root and
26 unable to open device. This is needed with udev, since the device
27 node will be created only when the module is inserted, hence
28 module autoloading won't work. Reported by Szakacsits Szabolcs
29
Miklos Szeredi9a5c11d2006-07-30 17:33:40 +0000302006-07-30 Miklos Szeredi <miklos@szeredi.hu>
31
32 * fusermount: if selinux is active, restore the original file's
33 security context in unmount_rename(). Redhat bugzilla id 188561.
34 Patch from Yves Perrenoud
35
36 * Add POSIX file locking operation to high level library
37
Miklos Szerediad519562006-07-31 11:07:40 +000038 * Initialize context for unlink of hidden files on umount. Bug
39 reported by Tim Stoakes
40
Miklos Szeredi9a5c11d2006-07-30 17:33:40 +0000412006-07-14 Miklos Szeredi <miklos@szeredi.hu>
42
43 * Multiple release() calls can race with each other, resulting in
44 the hidden file being deleted before the last release finishes.
45 Bug found and patch tested by Mark Huijgen
46
Miklos Szeredi3b0e4fa2006-07-14 10:13:16 +0000472006-07-05 Miklos Szeredi <miklos@szeredi.hu>
48
Miklos Szeredi9a5c11d2006-07-30 17:33:40 +000049 * fusermount: if /dev/fuse doesn't exist, suggest modprobing fuse;
50 this makes sense on systems using udev. Reported by Szakacsits
51 Szabolcs
Miklos Szeredi3b0e4fa2006-07-14 10:13:16 +000052
Miklos Szeredi91762cd2006-06-29 14:38:35 +0000532006-06-29 Miklos Szeredi <miklos@szeredi.hu>
54
55 * Released 2.6.0-pre3
56
572006-06-29 Miklos Szeredi <miklos@szeredi.hu>
58
59 * Support in kernel module for file locking and interruption. The
60 same functionality is available in official kernels >= 2.6.18
61
Miklos Szeredib052a1a2006-06-28 14:51:20 +0000622006-06-28 Miklos Szeredi <miklos@szeredi.hu>
63
64 * Add POSIX file locking support
65
66 * Add request interruption
67
Miklos Szeredi55a84102006-06-06 10:16:38 +0000682006-06-06 Miklos Szeredi <miklos@szeredi.hu>
69
70 * Add missing pthread_rwlock_destroy(). Patch from Remy Blank
71
Miklos Szeredi9dedb702006-06-06 09:48:30 +0000722006-06-05 Remy Blank <remy.blank@pobox.com>
73
74 * lib: canonicalize mount point in fuse_helper_opt_proc() so that
75 unmounting succeeds even if mount point was relative.
76
Csaba Henkd021ce42006-06-03 23:04:18 +0000772006-06-04 Csaba Henk <csaba.henk@creo.hu>
78
79 * lib: fix emergency umount in helper.c when malloc fails.
80 (The way it was done would end up in a segfault.)
81
Csaba Henk4f5c7b42006-06-01 14:19:17 +0000822006-06-01 Csaba Henk <csaba.henk@creo.hu>
83
84 * lib: adjust threading related compiler flags.
85 Switch to "-pthread" from "-lpthread" as that's the preferred
86 one on several platforms. Consulted with Terrence Cole and
87 Miklos Szeredi
Miklos Szeredi06908f42006-05-16 14:39:47 +000088
Miklos Szeredi9d3b7da2006-05-08 12:35:04 +0000892006-05-08 Miklos Szeredi <miklos@szeredi.hu>
90
91 * lib: search fusermount in installation directory (bindir) as
92 well as in PATH.
93
Miklos Szeredi2512aaa2006-05-03 14:54:59 +0000942006-05-03 Miklos Szeredi <miklos@szeredi.hu>
95
96 * lib: fix compilation if CLOCK_MONOTONIC is not defined.
97 Reported by Christian Magnusson
98
Csaba Henk2efe48f2006-04-22 22:46:52 +0000992006-04-23 Csaba Henk <csaba.henk@creo.hu>
100
101 * lib: make FreeBSD mount routine recognize if kernel features
102 backgrounded init and if it does, run the mount util in foreground
103 (similarly to Linux)
104
Miklos Szeredi5fe07d62006-04-21 14:09:28 +00001052006-04-21 Miklos Szeredi <miklos@szeredi.hu>
106
107 * kernel: fix fput deadlock fix, the lockless solution could lead
108 to "VFS: busy inodes after umount..."
109
110 * kernel: fix race between checking and setting file->private_data
111 for the device. Found by Al Viro
112
1132006-04-11 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi7a2814c2006-04-12 10:41:50 +0000114
115 * kernel: remove request pool, instead allocate requests on
116 demand. Account the number of background requests, and if they go
117 over a limit, block the allocation of new requests.
118
119 * kernel: fix deadlock if backgrounded request holds the last
120 reference to the super block
121
122 * kernel: don't use fuse_reset_request() during direct I/O
123
Csaba Henkbaa49d22006-04-06 00:12:44 +00001242006-04-06 Csaba Henk <csaba.henk@creo.hu>
125
126 * lib: Let FreeBSD mount option parsing routine recognize "no"
127 prefixes for FUSE specific options as well
128
Miklos Szeredid0a777a2006-04-05 07:18:00 +00001292006-04-01 Miklos Szeredi <miklos@szeredi.hu>
130
131 * lib: Add missing rwlock initialization. Patch by Ryan Bradetich
132
Miklos Szeredi6f385412006-03-17 15:05:40 +00001332006-03-17 Miklos Szeredi <miklos@szeredi.hu>
134
135 * API changes:
136
137 * fuse_main(), fuse_setup() and fuse_new() have an additionl
138 user_data parameter
139
140 * fuse_mount() returns a 'struct fuse_chan' pointer instead of a
141 file descriptor
142
143 * fuse_unmount() receives a 'struct fuse_chan' pointer. It
144 destroys the given channel
145
146 * fuse_teardown() no longer has a file descriptor parameter
147
148 * new exported functions: fuse_session_remove_chan(),
149 fuse_get_session(), fuse_daemonize()
150
Miklos Szeredi8d975f62006-03-17 15:56:05 +0000151 * fuse_chan_recv() may now return a new channel which will be used
152 to send the reply
153
Miklos Szeredif51e43f2006-03-16 14:19:25 +00001542006-03-16 Miklos Szeredi <miklos@szeredi.hu>
155
Miklos Szeredi9db31dc2006-03-16 14:43:28 +0000156 * Released 2.6.0-pre2
157
1582006-03-16 Miklos Szeredi <miklos@szeredi.hu>
159
Miklos Szeredif51e43f2006-03-16 14:19:25 +0000160 * Don't unmount if already unmounted. This fixes a problem seen
161 in the following situation: Lazy unmount a busy filesystem; Mount
162 a new one in top; When the first finally unmounts, the second also
163 unmounts. Reported by Franco Broi
164
Miklos Szeredi2c1381f2006-03-15 20:34:10 +00001652006-03-15 Miklos Szeredi <miklos@szeredi.hu>
166
167 * lowlevel lib: use indirect function calls instead of a
168 switch/case construct. Besides increased efficiency it helps
169 maintainability & readability too. Patch from Florin Malita
170
Miklos Szeredi67d26d42006-03-13 17:39:56 +00001712006-03-13 Miklos Szeredi <miklos@szeredi.hu>
172
173 * kernel: replace global spinlock with a per-connection spinlock
174
Miklos Szeredi87c77932006-03-10 10:18:20 +00001752006-03-10 Miklos Szeredi <miklos@szeredi.hu>
176
177 * Fix source compatibility breakage for fuse_unmount(). Report
178 from Yura Pakhuchiy
179
Miklos Szeredi9caf0fe2006-03-02 19:55:56 +00001802006-03-02 Miklos Szeredi <miklos@szeredi.hu>
181
182 * Fix O_ASYNC handling in fuse_dev_release(). From Jeff Dike
183
Miklos Szeredi5d9ce362006-03-01 12:10:13 +00001842006-03-01 Miklos Szeredi <miklos@szeredi.hu>
185
186 * Add O_ASYNC and O_NONBLOCK support to FUSE device. Patch by
187 Jeff Dike
188
189 * Renamed fuse_chan_receive() to fuse_chan_recv() and changed
190 interface to return -errno in case of error.
191
Csaba Henkee588c02006-03-01 09:40:35 +00001922006-03-01 Csaba Henk <csaba.henk@creo.hu>
193
194 * libfuse: pass device file descriptor to fuse_unmount(), rewrite
195 FreeBSD implementation so that it uses libc (sysctl backed) instead
196 of an embdedded script (kmem backed). Adjust the control flow of
197 hello_ll so that device doesn't get closed before unmount attempt.
198
Miklos Szerediaa8258e2006-02-25 14:42:03 +00001992006-02-25 Miklos Szeredi <miklos@szeredi.hu>
200
201 * Lowlevel lib: return all-zero statvfs data if filesystem doesn't
202 implement method. This is needed on FreeBSD, and nicer on Linux
203 too. Highlevel lib already did this. Reported by Csaba Henk
204
205 * Fix negative entry handling. There was a bug, that negative
206 lookups with timeouts (nodeid == 0) returned -EIO.
207
2082006-02-23 Miklos Szeredi <miklos@szeredi.hu>
209
210 * Fix race between RELEASE and UNLINK, which might leave
211 .fuse_hidden* files around
212
Miklos Szeredi6bab4802006-02-21 18:31:29 +00002132006-02-21 Miklos Szeredi <miklos@szeredi.hu>
214
215 * fusexmp_fh: implement flush() method and call close() on the
216 open file descriptor. This is needed if used on an NFS
217 filesystem, which buffers data until file is closed. Franco Broi
218 spotted the situation when 'cp -p' failed to set the modification
219 time because of this.
220
Miklos Szeredie109e282006-02-20 11:06:20 +00002212006-02-20 Miklos Szeredi <miklos@szeredi.hu>
222
223 * Released 2.6.0-pre1
224
Miklos Szeredib67f2162006-02-20 10:55:33 +00002252006-02-19 Miklos Szeredi <miklos@szeredi.hu>
226
227 * libfuse: fix use-after-free bug in interruptred reply_entry().
228 Patch from John Muir
229
230 * libfuse: fix wrong symbol versioning for fuse_mount. Debian bug
231 ID: 352631. Found by Stéphane Rosi
232
Miklos Szeredi1bf64f42006-02-17 15:49:25 +00002332006-02-17 Miklos Szeredi <miklos@szeredi.hu>
234
235 * Lowlevel lib: Unify fuse_dirent_size() and fuse_add_dirent()
236 into a single function fuse_add_direntry(). This cleans up the
237 interface and makes it possible to do stacking.
238
Miklos Szeredi99ac9c02006-02-16 10:08:32 +00002392006-02-16 Miklos Szeredi <miklos@szeredi.hu>
240
241 * Fix rare race betweeen abort and release caused by failed iget()
242 in fuse_create_open().
243
Miklos Szeredi6e806e92006-02-16 16:59:39 +0000244 * Add 'ac_attr_timeout' option e.g. for filesystems which do their
245 own attribute caching.
246
Miklos Szeredid65cdfe2006-02-15 14:25:17 +00002472006-02-15 Miklos Szeredi <miklos@szeredi.hu>
248
249 * Work around FreeBSD runtime linker "feature" which binds an old
250 version of a symbol to internal references if the symbol has more
251 than one version. This resulted in infinite recursion in
252 fuse_lowlevel_new_compat25().
253
Csaba Henkdcce3e52006-02-10 06:22:15 +00002542006-02-10 Csaba Henk <csaba.henk@creo.hu>
255
256 * Refine clock_gettime() querying so that linker options
257 shall be set as it's appropriate for the target platform.
258
Miklos Szeredi390ae312006-02-10 16:44:34 +00002592006-02-09 Miklos Szeredi <miklos@szeredi.hu>
260
261 * Fix udev rule syntax. Reported by Nix
262
Miklos Szeredieb643582006-02-08 10:54:02 +00002632006-02-08 Miklos Szeredi <miklos@szeredi.hu>
264
265 * In some cases udev rule seems to be ineffective when installed
266 as 40-fuse.rules but work as 60-fuse.rules. Reported by John Hunt
267
Miklos Szeredi357529c2006-02-03 09:20:31 +00002682006-02-03 Miklos Szeredi <miklos@szeredi.hu>
269
270 * Fix compilation when build directory is different from source
271 directory. Reported by Frédéric L. W. Meunier
272
Miklos Szeredice28c7e2006-02-02 14:59:05 +00002732006-02-02 Miklos Szeredi <miklos@szeredi.hu>
274
275 * Fix even bigger bug introduced in fix for request_end() on
276 2006-01-14. Reported by Gal Rosen
277
Miklos Szeredi320abe42006-01-30 18:14:51 +00002782006-01-30 Miklos Szeredi <miklos@szeredi.hu>
279
280 * highlevel-lib: add 'auto_cache' option. This caches file data
281 based on modification time and size
282
Miklos Szeredi065f2222006-01-20 15:15:21 +00002832006-01-20 Miklos Szeredi <miklos@szeredi.hu>
284
Miklos Szeredid66b7282006-02-02 15:15:21 +0000285 * Sanitize storage type and help message in mount_bsd.c. Patch
286 from Csaba Henk
287
Miklos Szeredi065f2222006-01-20 15:15:21 +0000288 * fuse_opt: add new helper constants FUSE_OPT_KEY_KEEP and
289 FUSE_OPT_KEY_DISCARD
290
291 * Add options 'max_readahead', 'sync_read' and 'async_read'
292
293 * Kernel ABI version 7.6:
294
295 * Negotiate the 'max_readahead' value and 'async_read' flags with
296 userspace in the INIT method
297
298 * Add connection info to ->init() methods to both lowlevel and
299 highlevel API
300
301 * Fall back to synchronous read() behavior if either library or
302 userspace filesystem is using the old interface version. This is
303 needed so non-updated filesystems won't be confused by the
304 different read() behavior
305
3062006-01-19 Miklos Szeredi <miklos@szeredi.hu>
307
308 * lib: if "fsname=" option was given, pass it to fusermount
309
310 * fuse_opt: add new fuse_opt_insert_arg() function, which is
311 needed by filesystems to implement some argument manipulations
312 correctly
313
314 * fuse_opt: fix memory leak in handling "--" option
315
3162006-01-18 Miklos Szeredi <miklos@szeredi.hu>
317
318 * kernel: fix detection of case when fuse is not configured into
319 the kernel either as module or built-in
320
321 * fuse_opt.h: fix incompatibility with C++ compilers by renaming
322 'template' structure member to 'templ'. Reported by Takashi Iwai
323
324 * fuse.h: fix compatibility bugs. Patch by Yura Pakhuchiy
325
326 * kernel: support version 2.6.16 (i_sem -> i_mutex)
327
Miklos Szeredi15af1b82006-01-16 17:52:24 +00003282006-01-16 Miklos Szeredi <miklos@szeredi.hu>
329
330 * Added (again) asynchronous readpages support
331
332 * Each connection now shows up under /sys/fs/fuse/connections
333
334 * Connection attributes exported to sysfs: 'waiting' number of
335 waiting requests; 'abort' abort the connection
336
337 * Connection may be aborted through either the sysfs interface or
338 with 'umount -f mountpoint'
339
Miklos Szeredi9db5faa2006-01-14 14:47:21 +00003402006-01-14 Miklos Szeredi <miklos@szeredi.hu>
341
Miklos Szeredi75bb0de2006-01-14 18:38:54 +0000342 * Released 2.5.0
343
3442006-01-14 Miklos Szeredi <miklos@szeredi.hu>
345
Miklos Szeredi9db5faa2006-01-14 14:47:21 +0000346 * kernel: fix a couple of bugs
347
Miklos Szeredi68183ca2006-01-27 11:16:11 +0000348 * Order of request_end() and fuse_copy_finish() was wrong.
Miklos Szeredie0451092006-01-27 11:19:51 +0000349 Posthumous note: Franco Broi managed to exploit this, though it
Miklos Szeredi68183ca2006-01-27 11:16:11 +0000350 seemed quite impossible
Miklos Szeredi9db5faa2006-01-14 14:47:21 +0000351
352 * request_end() used request pointer after decrementing refcount
353
354 * Clearing ->connected or ->mounted connection flags could race
355 with setting other bitfields not protected with a lock
Miklos Szeredi15af1b82006-01-16 17:52:24 +0000356
Miklos Szeredia9820342006-01-10 10:54:11 +00003572006-01-10 Miklos Szeredi <miklos@szeredi.hu>
358
359 * kernel: add necessary compile flags for 2.4.X/x86_64.
360 Report from Sean Ziegeler
361
Miklos Szeredi35676b02006-01-09 10:13:28 +00003622006-01-09 Miklos Szeredi <miklos@szeredi.hu>
363
Miklos Szeredie07b1a22006-01-09 14:46:10 +0000364 * Released 2.5.0-pre2
365
3662006-01-09 Miklos Szeredi <miklos@szeredi.hu>
367
Miklos Szeredi35676b02006-01-09 10:13:28 +0000368 * Applied patch from Csaba Henk, to update mount_bsd to new
369 fuse_mount() semantics
370
Miklos Szeredib32c79b2006-01-09 11:14:29 +0000371 * Ignore auto,noauto,... options in mount.fuse. Reported by Frank
372 Steiner and Don Taber
373
Miklos Szeredicb075c82006-01-09 11:33:04 +0000374 * fusermount: add 'dirsync' mount option
375
Miklos Szerediad005972006-01-07 10:14:34 +00003762006-01-07 Miklos Szeredi <miklos@szeredi.hu>
377
378 * Improved help reporting and added version reporting to library
379
Miklos Szeredi0af762a2006-01-06 09:47:54 +00003802006-01-06 Miklos Szeredi <miklos@szeredi.hu>
381
382 * Change working directory to "/" even if running in the
383 foreground. Patch from Jonathan Brandmeyer
384
Miklos Szeredi95da8602006-01-06 18:29:40 +0000385 * Changed lots of functions to use 'struct fuse_args' instead of
386 separate argc and argv
387
388 * Added fuse_parse_cmdline(), fuse_set_signal_handlers() and
389 fuse_remove_signal_handlers() functions, so that it's now pretty
390 easy to get all the functionality of fuse_main() with a filesystem
391 using the lowlevel API.
392
Miklos Szeredib8638182006-01-02 12:52:24 +00003932006-01-02 Miklos Szeredi <miklos@szeredi.hu>
394
Miklos Szeredif1941472006-01-02 16:27:48 +0000395 * mount.fuse: the 'user' option should be ignored. Report and
396 solution from Mattd.
397
398 * mount.fuse: export PATH in the right place. Report and patch
399 from Hannes Schweizer
Miklos Szeredib8638182006-01-02 12:52:24 +0000400
Miklos Szeredi73f41392005-12-16 11:12:16 +00004012005-12-16 Miklos Szeredi <miklos@szeredi.hu>
402
403 * Clean up the option parsing interface slightly, by creating an
404 "argument list" structure, that contains the argument vector and
405 count
406
Miklos Szeredi4e829092005-12-15 16:13:49 +00004072005-12-15 Miklos Szeredi <miklos@szeredi.hu>
408
409 * fusermount: check if /mnt/mtab is a symlink and don't modify it
410 in that case
411
Miklos Szeredi154ffe22005-12-15 16:41:20 +0000412 * kernel: simplify request size limiting. INIT only contains
413 maximum write size, maximum path component size remains fixed at
414 1024 bytes, and maximum xattr size depends on read buffer.
415
Miklos Szeredie248e4b2005-12-14 16:18:32 +00004162005-12-14 Miklos Szeredi <miklos@szeredi.hu>
417
418 * Fix readdir() failure on x86_64, of 32bit programs compiled
419 without largefile support. Bug report and help from Anthony
420 Kolasny
421
Miklos Szeredi64709572005-12-14 22:16:28 +0000422 * If lookup returns invalid mode, return -EIO instead of creating
Miklos Szeredicaa09312005-12-14 23:25:00 +0000423 a regular file
424
425 * Add current output argument vector to option processing
426 function
Miklos Szeredi64709572005-12-14 22:16:28 +0000427
Miklos Szeredi76fc3de2005-12-12 09:34:45 +00004282005-12-12 Miklos Szeredi <miklos@szeredi.hu>
429
430 * Fix stale code in ifdef FreeBSD. Patch from Csaba Henk
431
Miklos Szeredi659743b2005-12-09 17:41:42 +00004322005-12-09 Miklos Szeredi <miklos@szeredi.hu>
433
Miklos Szeredi3b534a42005-12-09 20:09:42 +0000434 * Released 2.5.0-pre1
435
4362005-12-09 Miklos Szeredi <miklos@szeredi.hu>
437
Miklos Szeredi659743b2005-12-09 17:41:42 +0000438 * libfuse: added option parsing interface, defined in
439 <fuse_opt.h>.
440
Miklos Szeredic53cddd2005-12-07 12:57:59 +00004412005-12-07 Miklos Szeredi <miklos@szeredi.hu>
442
443 * Return EIO for file operations (read, write, fsync, flush) on
444 open files whose inode has become "bad". Inodes will be marked
445 "bad" if their type changes. Bug report by Csaba Henk
446
Miklos Szeredi044da2e2005-12-06 17:59:55 +00004472005-12-06 Miklos Szeredi <miklos@szeredi.hu>
448
449 * Use bigger request buffer size. write() did not work on archs
450 with > 4k page size, Bug report by Mark Haney
451
452 * ABI version 7.5:
453
454 * Extend INIT reply with data size limits
455
Miklos Szeredifa829b52005-12-02 11:05:41 +00004562005-12-02 Miklos Szeredi <miklos@szeredi.hu>
457
458 * Fix memory leak in fuse_read_cmd()/fuse_process_cmd(). Bug
459 reported by Vincenzo Ciancia
460
461 * Handle exit-by-umount in fuse_read_cmd()
462
Miklos Szeredi3cc8a262005-11-29 11:04:27 +00004632005-11-29 Miklos Szeredi <miklos@szeredi.hu>
464
465 * Check if '-msoft-float' option is supported by compiler when
466 configuring for a 2.4.x kernel. Bug report by Mark Haney
467
Miklos Szeredi40d7b382005-11-29 20:07:23 +0000468 * In multithreaded loop send a TERM signal to the main thread if
469 one of the other threads exit. Needed on FreeBSD for a clean exit
470 on umount. Should not cause any harm on Linux either
471
Miklos Szerediead7f102005-11-28 16:02:27 +00004722005-11-28 Miklos Szeredi <miklos@szeredi.hu>
473
474 * Fix bug in 32-bit file handle compatibility
475
Miklos Szeredia90b7342005-11-27 19:22:42 +00004762005-11-27 Miklos Szeredi <miklos@szeredi.hu>
477
478 * Block TERM, INT, HUP and QUIT signals in all but the main
479 thread. According to POSIX it's not specified which thread will
480 receive these signals.
Miklos Szeredi2b478112005-11-28 13:27:10 +0000481
482 * Kernel changes:
483
484 * Check for directory aliasing on mkdir, not just on lookup
485
486 * Check for special node ID values in create+open operation
487
488 * Sync with -mm: readv, writev, aio_read and aio_write methods
489 added to file operations
490
491 * Cleanups: lookup code, page offset calculation
492
493 * ABI stepped to 7.4, changes:
494
495 * frsize member added to fuse_kstatfs structure
496
497 * added support for negative entry caching: on lowlevel API if
498 fuse_entry_param::ino is set to zero in reply to a lookup request,
499 the kernel will cache the dentry for the specified amount of time.
500
501 * libfuse: added 'negative_timeout' option: specifies how much
502 negative entries should be cached. Default is zero, to be
Miklos Szerediead7f102005-11-28 16:02:27 +0000503 compatible with prior versions
Miklos Szeredi2b478112005-11-28 13:27:10 +0000504
Miklos Szeredibac4c772005-11-23 13:35:54 +00005052005-11-22 Miklos Szeredi <miklos@szeredi.hu>
506
507 * Add detection of mainline FUSE code in running kernel
508
Miklos Szeredi8393e3d2005-11-21 11:37:01 +00005092005-11-21 Miklos Szeredi <miklos@szeredi.hu>
510
511 * Don't use async cancelation in multithreaded loop. This makes
512 it more portable to systems where read() is not async cancel safe.
513 Report from Andriy Gapon
514
Miklos Szeredi05c97842005-11-20 17:05:07 +00005152005-11-20 Miklos Szeredi <miklos@szeredi.hu>
516
517 * Warn if API version 11 compatibility is requested
518
Miklos Szeredi9c2ccb42005-11-17 17:11:48 +00005192005-11-17 Miklos Szeredi <miklos@szeredi.hu>
520
521 * More FreeBSD merge
522
Miklos Szeredi832ee442005-11-18 21:02:36 +0000523 * fusermount: don't allow mountpoints with '\n', '\t', or '\\' in
524 them, because it corrupts /etc/mtab. Found by Thomas Biege
Miklos Szeredibac4c772005-11-23 13:35:54 +0000525 CVE-2005-3531
Miklos Szeredi832ee442005-11-18 21:02:36 +0000526
527 * libfuse: don't use system() to invoke 'fusermount -u ...'
528 because it breaks mountpoints with spaces in them into multiple
529 arguments
530
Miklos Szeredib3f99722005-11-16 13:00:24 +00005312005-11-16 Miklos Szeredi <miklos@szeredi.hu>
532
533 * Merge library part of FreeBSD port. Patch by Csaba Henk
534
Miklos Szeredi3a770472005-11-11 21:32:42 +00005352005-11-11 Miklos Szeredi <miklos@szeredi.hu>
536
537 * Use 64bit type for file handle, so the full range supported by
538 the kernel interface is available to applications
539
Miklos Szeredibcc53852005-11-10 09:54:41 +00005402005-11-10 Miklos Szeredi <miklos@szeredi.hu>
541
542 * Moved mountpoint argument checking from fuse_parse_cmdline() to
543 fuse_mount() in preparation to FreeBSD merge.
544
Miklos Szeredi4ec06812005-11-08 13:04:27 +00005452005-11-08 Miklos Szeredi <miklos@szeredi.hu>
546
547 * Remove unneeded close() from fuse_teardown(). Spotted by Csaba
548 Henk.
549
Miklos Szeredic706ad92005-11-07 15:30:48 +00005502005-11-07 Miklos Szeredi <miklos@szeredi.hu>
551
552 * Make the statfs change backwards compatible.
553
Miklos Szeredi52cb09d2005-11-07 11:59:00 +00005542005-11-06 Miklos Szeredi <miklos@szeredi.hu>
555
556 * Change ->statfs() method to use 'struct statvfs' instead of
557 'struct statfs'. This makes the API more portable since statvfs()
558 is defined by POSIX.
559
Miklos Szeredif7eec032005-10-28 13:09:50 +00005602005-10-28 Miklos Szeredi <miklos@szeredi.hu>
561
562 * Add fgetattr() method, which currently will only be called after
563 a successful call to a create() method.
564
Miklos Szeredib0b13d12005-10-26 12:53:25 +00005652005-10-26 Miklos Szeredi <miklos@szeredi.hu>
566
Miklos Szeredi11509ce2005-10-26 16:04:04 +0000567 * Change kernel ABI version to 7.3
568
Miklos Szeredib0b13d12005-10-26 12:53:25 +0000569 * Add ACCESS operation. This is called from the access() system
Miklos Szeredid9079a72005-10-26 15:29:06 +0000570 call if 'default_permissions' mount option is not given, and is
571 not called on kernels 2.4.*
Miklos Szeredib0b13d12005-10-26 12:53:25 +0000572
Miklos Szeredid9079a72005-10-26 15:29:06 +0000573 * Add atomic CREATE+OPEN operation. This will only work with
574 2.6.15 (presumably) or later Linux kernels.
575
Miklos Szeredi11509ce2005-10-26 16:04:04 +0000576 * Add ftruncate() method. This will only work with 2.6.15
577 (presumably) or later Linux kernels.
578
579 * Fix kernel module compile if kernel source and build directories
580 differ. Report and initial patch by John Eastman
581
Miklos Szeredic4c12ae2005-10-20 14:48:50 +00005822005-10-18 Miklos Szeredi <miklos@szeredi.hu>
583
584 * lib: optimize buffer reallocation in fill_dir.
585
Miklos Szeredic9daeb12005-10-17 10:19:21 +00005862005-10-17 Miklos Szeredi <miklos@szeredi.hu>
587
588 * Released 2.4.1
589
Miklos Szeredif412d072005-10-14 21:24:32 +00005902005-10-14 Miklos Szeredi <miklos@szeredi.hu>
591
Miklos Szeredi062f0e52005-10-14 21:28:21 +0000592 * libfuse: add debug for write result (by Shaun Jackman) and
593 warnings for too large read/write result
Miklos Szeredif412d072005-10-14 21:24:32 +0000594
Miklos Szeredib75d4b92005-10-11 10:12:08 +00005952005-10-11 Miklos Szeredi <miklos@szeredi.hu>
596
597 * Spelling fixes, thanks to Ioannis Barkas
598
Miklos Szeredibaab5872005-10-10 08:41:14 +00005992005-10-10 Miklos Szeredi <miklos@szeredi.hu>
600
601 * fuse_common.h: use extern "C". Thanks to Valient Gough for the
602 patch
603
Miklos Szeredi4f5df5e2005-10-07 12:39:58 +00006042005-10-07 Miklos Szeredi <miklos@szeredi.hu>
605
606 * highlevel-lib: init() and destroy() methods didn't have an
607 initialized fuse_context. Bug reported by Tim Stoakes
608
Miklos Szeredif2491122005-10-04 10:10:41 +00006092005-10-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi83f253e2005-10-04 05:56:01 +0000610
611 * Released 2.4.0
612
Miklos Szeredi836ab712005-10-03 14:11:59 +00006132005-10-03 Miklos Szeredi <miklos@szeredi.hu>
614
615 * Add documentation to fuse_lowlevel.h
616
617 * API cleanups:
618
619 * Remove definitions of unused FATTR_CTIME / FUSE_SET_ATTR_CTIME
620
621 * Move fuse_mount() and fuse_unmount() to fuse_common.h
622
623 * Change the return type of fuse_reply_none() from int to void.
624
Miklos Szerediaf138742005-09-30 08:49:59 +00006252005-09-30 Miklos Szeredi <miklos@szeredi.hu>
626
627 * kernel: NFS exporting leaked dentries. Bug found and fixed by
628 Akshat Aranya.
629
Miklos Szeredidb016e02005-09-29 10:06:27 +00006302005-09-29 Miklos Szeredi <miklos@szeredi.hu>
631
632 * fusermount: fix error message, when unable to open /dev/fuse.
633 Report by Balázs Pozsár
634
Miklos Szeredi35200932005-09-28 14:50:49 +00006352005-09-28 Miklos Szeredi <miklos@szeredi.hu>
636
637 * UClibc fixes from Christian Magnusson
638
Miklos Szeredi8eddf642005-09-27 08:58:26 +00006392005-09-27 Miklos Szeredi <miklos@szeredi.hu>
640
641 * Added NAME="%k" to util/udev.rules. Fix by Mattias Wadman.
642
Miklos Szerediedec95c2005-09-26 10:22:22 +00006432005-09-26 Miklos Szeredi <miklos@szeredi.hu>
644
Miklos Szeredi39851ac2005-09-26 11:17:50 +0000645 * Released 2.4.0-rc1
646
6472005-09-26 Miklos Szeredi <miklos@szeredi.hu>
648
Miklos Szerediedec95c2005-09-26 10:22:22 +0000649 * fusermount: allow user umount in the case when /etc/mtab is a
650 symlink to /proc/mounts. Reported by Balázs Pozsár.
651
Miklos Szeredi6becf0b2005-09-23 11:25:28 +00006522005-09-23 Miklos Szeredi <miklos@szeredi.hu>
653
Miklos Szeredi8722dd22005-09-23 13:34:44 +0000654 * Check for special node ID values in lookup and creation
Miklos Szeredi6becf0b2005-09-23 11:25:28 +0000655
Miklos Szeredif45f3c12005-09-22 15:14:27 +00006562005-09-22 Miklos Szeredi <miklos@szeredi.hu>
657
658 * Slight optimization in returning EINVAL error in case of an open
659 with O_DIRECT flag.
660
Miklos Szeredi670d07a2005-09-20 11:36:32 +00006612005-09-20 Miklos Szeredi <miklos@szeredi.hu>
662
663 * Remove '--enable-auto-modprobe' configure flag. Module
664 auto-loading is now handled by the kernel.
665
Miklos Szeredid51fca12005-09-15 12:51:00 +00006662005-09-15 Miklos Szeredi <miklos@szeredi.hu>
667
668 * Install UDEV rule file, so /dev/fuse is created with mode 0666.
669 Help from Jens M. Noedler.
670
Miklos Szeredi7e7530d2005-09-14 15:20:26 +00006712005-09-14 Miklos Szeredi <miklos@szeredi.hu>
672
673 * Add memory cleanup on thread exit
674
Miklos Szeredid7ea8cf2005-09-13 12:53:58 +00006752005-09-13 Miklos Szeredi <miklos@szeredi.hu>
676
677 * Set umask to zero in fusexmp and fusexmp_fh, so that
678 files/directories are created with the requested mode.
679
Miklos Szeredi0d41f2f2005-09-12 16:40:26 +00006802005-09-12 Miklos Szeredi <miklos@szeredi.hu>
681
682 * Don't ignore read error in multithreaded loop
683
Miklos Szeredifcf9f8d2005-09-08 14:28:54 +00006842005-09-08 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi56487812005-09-02 13:05:06 +0000685
Miklos Szeredi2277ecc2005-09-08 15:34:44 +0000686 * Released 2.4.0-pre2
687
6882005-09-08 Miklos Szeredi <miklos@szeredi.hu>
689
Miklos Szeredifcf9f8d2005-09-08 14:28:54 +0000690 * Revert lock and access operations. Postpone these until 2.5.
691
6922005-09-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi56487812005-09-02 13:05:06 +0000693
694 * Fix compile warning on 2.6.13 and later
695
Miklos Szeredi3b9e53f2005-09-02 16:04:48 +0000696 * Fix compilation on old kernels
Miklos Szeredi0716de02005-09-02 14:56:09 +0000697
Miklos Szeredi77ccf652005-08-19 14:40:27 +00006982005-08-19 Miklos Szeredi <miklos@szeredi.hu>
699
700 * lib: always refresh directory contents after rewinddir() to
701 conform to SUS. Bug found by John Muir.
702
Miklos Szeredia1482422005-08-14 23:00:27 +00007032005-08-15 Miklos Szeredi <miklos@szeredi.hu>
704
Miklos Szeredic43f9412005-08-15 15:10:48 +0000705 * Released 2.4.0-pre1
706
7072005-08-14 Miklos Szeredi <miklos@szeredi.hu>
708
Miklos Szeredia1482422005-08-14 23:00:27 +0000709 * lib: cleaned up (or messed up, depending on your POV) the low
710 level library API. Hopefully this is close to the final form.
711
Miklos Szeredicc1b97c2005-08-05 10:35:26 +00007122005-08-05 Miklos Szeredi <miklos@szeredi.hu>
713
714 * fusermount: don't allow empty mountpoint argument, which defeats
715 automatic umounting in fuse_main(). Bugreport by Václav Jůza
716
Miklos Szeredif6e0ec62005-08-03 09:11:06 +00007172005-08-03 Miklos Szeredi <miklos@szeredi.hu>
718
719 * fix warnings in fuse.h and fuse_lowlevel.h if -Wshadow compiler
720 option is used (Paul Alfille).
721
Miklos Szeredi6c0209a2005-08-02 13:31:28 +00007222005-08-02 Miklos Szeredi <miklos@szeredi.hu>
723
724 * highlevel-lib: added mount options "attr_timeout" and
725 "entry_timeout". These options control the length of time file
726 attributes and entries (names) are cached. Both default to 1.0
727 second.
Miklos Szeredif6e0ec62005-08-03 09:11:06 +0000728
729 * kernel: correctly handle zero timeout for attributes and entries
730
Miklos Szeredi56a61f02005-08-01 10:42:25 +00007312005-08-01 Miklos Szeredi <miklos@szeredi.hu>
732
733 * Added missing symbols to versionscript (Joshua J. Berry)
734
Miklos Szeredie77cc072005-08-01 11:58:51 +0000735 * kernel: implement two flags, open can set: 'direct_io' and
736 'keep_cache'. These correspond exactly to mount options
737 'direct_io' and 'kernel_cache', but allow a per-open setting.
738
739 * Move 'direct_io' and 'kernel_cache' mount option handling to
740 userspace. For both mount options, if the option is given, then
741 the respective open flag is set, otherwise the open flag is left
742 unmodified (so the filesystem can set it).
Miklos Szeredi7b28eae2005-08-01 12:48:30 +0000743
Miklos Szeredi31066bb2005-08-01 14:49:31 +0000744 * lib (highlevel): make open method optional
Miklos Szeredif6e0ec62005-08-03 09:11:06 +0000745
Miklos Szeredi2aaf24a2005-07-28 11:59:41 +00007462005-07-28 Miklos Szeredi <miklos@szeredi.hu>
747
748 * kernel: invalidate attributes for read/readdir/readlink
749 operations
750
751 * kernel: detect newer UML kernels
752
Miklos Szeredibfb99462005-07-26 11:07:55 +00007532005-07-26 Miklos Szeredi <miklos@szeredi.hu>
754
755 * Make the installation path of fuse.ko and mount.fuse
756 configurable through INSTALL_MOD_PATH and MOUNT_FUSE_PATH
757 environment variables. Requirement and help from Csaba Henk.
758
Miklos Szeredi8d4d1b82005-07-22 11:58:47 +00007592005-07-22 Miklos Szeredi <miklos@szeredi.hu>
760
761 * Fix bug, that causes filesystem requests to hang when unique
762 request counter becomes negative. This happens after
763 2,147,483,648 operations, so most people won't care. Thanks to
764 Franco Broi for the report and testing.
765
Miklos Szeredi9b813af2005-07-21 07:59:37 +00007662005-07-21 Miklos Szeredi <miklos@szeredi.hu>
767
768 * Don't change mtime/ctime/atime to local time on read/write.
769 Bug reported by Ben Grimm
770
771 * Install fuse_common.h and fuse_lowlevel.h. Report by Christian
772 Magnusson
773
774 * fusermount: use getopt_long() for option parsing. It allows the
775 use of '--' to stop argument scanning, so fusermount can now
776 operate on directories whose names begin with a '-'. Patch by
777 Adam Connell
778
Miklos Szeredibd10a7b2005-07-15 09:59:59 +00007792005-07-15 Miklos Szeredi <miklos@szeredi.hu>
780
781 * fusermount: add '-v', '--version' and '--help' options
782
783 * add inode based API
784
Miklos Szeredi2482fdb2005-07-12 13:23:53 +00007852005-07-12 Miklos Szeredi <miklos@szeredi.hu>
786
787 * lib: don't block signals in worker threads. Problem noticed by
788 Usarin Heininga
789
Miklos Szeredic902a852005-07-07 12:35:37 +00007902005-07-07 Miklos Szeredi <miklos@szeredi.hu>
791
792 * lib: don't allow both 'allow_other' and 'allow_root' options to
793 be given
794
Miklos Szeredi437d8112005-07-06 09:14:20 +00007952005-07-06 Miklos Szeredi <miklos@szeredi.hu>
796
797 * fusermount: check if mountpoint is empty (only '.' and '..' for
798 directories, and size = 0 for regular files). If "nonempty"
799 option is given, omit this check. This is useful, so users don't
800 accidentally hide data (e.g. from backup programs). Thanks to
801 Frank van Maarseveen for pointing this out.
802
803 * kernel: check if mandatory mount options ('fd', 'rootmode',
804 'user_id', 'group_id') are all given
805
Miklos Szeredi340d21f2005-07-06 10:07:52 +0000806 * lib: simplify 'readdir_ino' handling
807
Miklos Szeredie331c4b2005-07-06 13:34:02 +0000808 * lib: add mount options 'umask=M', 'uid=N', 'gid=N'
809
Miklos Szeredibb9f5172005-07-03 18:03:11 +00008102005-07-03 Miklos Szeredi <miklos@szeredi.hu>
811
812 * kernel: clean up 'direct_io' code
813
Miklos Szeredie1bcece2005-06-28 10:37:06 +00008142005-06-28 Miklos Szeredi <miklos@szeredi.hu>
815
816 * Add 'mount.fuse' written by Petr Klima
817
Miklos Szeredi866826d2005-06-28 12:22:57 +0000818 * '/dev/fuse' is created by 'make install' if does not yet exist
819
Miklos Szeredi129ef8f2005-06-20 13:48:42 +00008202005-06-20 Miklos Szeredi <miklos@szeredi.hu>
821
822 * Fix UCLIBC compile error. Patch by Christian Magnusson
823
Miklos Szerediec12fad2005-06-08 10:26:34 +00008242005-06-08 Miklos Szeredi <miklos@szeredi.hu>
825
826 * Enable the auto-loading of the module via access to the
827 corresponding device file. Patch by Takashi Iwai.
828
Miklos Szeredidaa690e2005-06-08 10:41:36 +0000829 * Allow mounting a regular file (over a regular file) for
830 unprivleged users.
831
Miklos Szeredi7495abf2005-06-08 11:01:17 +0000832 * Do not create temporary device file. Require "/dev/fuse" to
833 exist, and be readable/writable by the mounting user.
834
Miklos Szeredi46960ce2005-06-02 09:05:00 +00008352005-06-02 Miklos Szeredi <miklos@szeredi.hu>
836
Miklos Szeredi56478552005-06-02 10:29:00 +0000837 * Released 2.3.0
838
8392005-06-02 Miklos Szeredi <miklos@szeredi.hu>
840
Miklos Szeredi46960ce2005-06-02 09:05:00 +0000841 * Fix serious information leak: if the filesystem returns a short
842 byte count to a read request, and there are non-zero number of
843 pages which are not filled at all, these pages will not be zeroed.
844 Hence the user can read out previous memory contents. Found by
845 Sven Tantau.
846
Miklos Szeredi33be22d2005-05-27 09:12:43 +00008472005-05-27 Miklos Szeredi <miklos@szeredi.hu>
848
849 * Add "readdir_ino" mount option, which tries to fill in the d_ino
850 field in struct dirent. This mount option is ignored if "use_ino"
851 is used. It helps some programs (e.g. 'pwd' used over NFS from a
852 non-Linux OS). Patch by David Shaw.
853
Miklos Szeredif94e0102005-05-12 14:56:34 +00008542005-05-12 Miklos Szeredi <miklos@szeredi.hu>
855
Miklos Szeredieb009c42005-05-12 15:01:17 +0000856 * Released 2.3-rc1
857
8582005-05-12 Miklos Szeredi <miklos@szeredi.hu>
859
Miklos Szeredif94e0102005-05-12 14:56:34 +0000860 * File save in krusader and other editors doesn't work with sshfs,
861 because open() is interrupted by a periodic signal, and open()
862 restarts forever, without any progress. This could just be fixed
863 in open(), but the problem is more generic: if signals are
864 received more often than the filesystem can get the request to
865 userspace, it will never finish. This is probably only a
866 theoretical problem, nevertheless I'm removing the possibility to
867 interrupt requests with anything other than SIGKILL, even before
868 being sent to userspace. Bugreport by Eduard Czimbalmos.
869
Miklos Szeredi0b9a06e2005-05-09 09:05:49 +00008702005-05-09 Miklos Szeredi <miklos@szeredi.hu>
871
Miklos Szeredic2a33ee2005-05-09 13:29:17 +0000872 * libfuse: add "tree_lock" rwlock, that is locked for write in
873 rename, unlink and rmdir, and locked for read in all other
874 operations. This should fix the rename/release race reported by
875 Valient Gough and others. The solution is very coarse, a finer
876 grained locking scheme could be implemented, but it would be much
877 more complex. Let's see whether this is good enough.
878
8792005-05-09 Miklos Szeredi <miklos@szeredi.hu>
880
Miklos Szeredi0b9a06e2005-05-09 09:05:49 +0000881 * Released 2.3-pre7
882
Miklos Szeredi38009022005-05-08 19:47:22 +00008832005-05-08 Miklos Szeredi <miklos@szeredi.hu>
884
885 * Better fix for out of order FORGET messages. Now the
886 LOOKUP/FORGET messages are balanced exactly (one FORGET can
887 balance many lookups), so the order no longer matters. This
Miklos Szeredi0b9a06e2005-05-09 09:05:49 +0000888 changes the kernel ABI slightly, but the library remains backward
Miklos Szeredi38009022005-05-08 19:47:22 +0000889 compatible.
890
Miklos Szeredid0cf1fb2005-05-06 10:10:38 +00008912005-05-06 Miklos Szeredi <miklos@szeredi.hu>
892
893 * Fix abort for out of order FORGET messages. Again. Spotted by
894 Franco Broi again. Sorry :)
895
Miklos Szeredi9372ffd2005-04-29 08:03:24 +00008962005-04-29 Miklos Szeredi <miklos@szeredi.hu>
897
Miklos Szeredicb6413a2005-04-29 08:16:20 +0000898 * Released 2.3-pre6
899
9002005-04-29 Miklos Szeredi <miklos@szeredi.hu>
901
Miklos Szeredi9372ffd2005-04-29 08:03:24 +0000902 * Make fusermount work with fuse kernel modules not yet supporting
903 the "group_id" option (added for the purpose of stricter
904 permission checking).
905
Miklos Szeredi9c1b68d2005-04-28 09:55:09 +00009062005-04-28 Miklos Szeredi <miklos@szeredi.hu>
907
908 * Check for hard-linked directories in lookup. This could cause
909 problems in the VFS, which assumes that such objects never exist.
910
911 * Make checking of permission for other users more strict. Now
912 the same privilege is required for the mount owner as for ptrace
913 on the process performing the filesystem operation.
Miklos Szeredi21019c92005-05-09 11:22:41 +0000914
Miklos Szeredi3efcb562005-04-23 13:34:29 +00009152005-04-23 Miklos Szeredi <miklos@szeredi.hu>
916
917 * Released 2.3-pre5
918
Miklos Szeredid001bf92005-04-22 07:54:11 +00009192005-04-22 Miklos Szeredi <miklos@szeredi.hu>
920
921 * Add -msoft-float to kernel module compile flags for 2.4.X. This
922 is needed on certain architectures. Report from Chris Kirby
923
924 * Fix buggy behavior of open(..., O_CREAT|O_EXCL) if interrupted.
925 Reported by David Shaw
926
Miklos Szeredi0111f9d2005-04-22 12:04:55 +0000927 * Remove "allow_root" option from kernel module, and implement
928 it's functionality in the library
929
930 * Fix Oops caused by premature release of fuse_conn. Clean up
931 related code, to be more readable
932
Miklos Szeredif9137452005-04-23 10:59:44 +0000933 * Sendfile should not use page cache if "direct_io" mount option
934 is given
935
Miklos Szeredib7640d22005-04-08 15:15:28 +00009362005-04-08 Miklos Szeredi <miklos@szeredi.hu>
937
938 * Fix Oops in case of nfs export. Spotted by David Shaw
939
Miklos Szeredi89814a12005-04-08 16:39:09 +0000940 * Fix another Oops in case of write over nfs with direct_io turned
941 on. Again spotted by David Shaw
942
Miklos Szerediab974562005-04-07 15:40:21 +00009432005-04-07 Miklos Szeredi <miklos@szeredi.hu>
944
Miklos Szeredi432d6182005-04-07 15:56:13 +0000945 * Released 2.3-pre4
946
9472005-04-07 Miklos Szeredi <miklos@szeredi.hu>
948
Miklos Szerediab974562005-04-07 15:40:21 +0000949 * lib: finalized new readdir() interface, which now supersedes the
950 getdir() method.
951
Miklos Szeredi30e093a2005-04-03 17:44:54 +00009522005-04-03 Miklos Szeredi <miklos@szeredi.hu>
953
954 * Released 2.3-pre3
955
9562005-04-03 Miklos Szeredi <miklos@szeredi.hu>
957
958 * Implement backward compatibility with version 5 kernel ABI
959
Miklos Szeredi18fce982005-04-01 21:07:35 +00009602005-04-01 Miklos Szeredi <miklos@szeredi.hu>
961
962 * Released 2.3-pre2
963
9642005-04-01 Miklos Szeredi <miklos@szeredi.hu>
965
966 * kernel: fix dirent offset handling
967
968 * lib: add readdir and releasedir methods
969
970 * lib: use fh field of fuse_file_info in opendir, readdir,
971 releasedir and fsyncdir methods
972
973 * lib: check kernel API version and bail out of it's old. This
974 will be properly fixed in the next release
975
9762005-03-31 Miklos Szeredi <miklos@szeredi.hu>
977
978 * Released 2.3-pre1
979
Miklos Szeredieab72ef2005-03-31 19:59:12 +00009802005-03-31 Miklos Szeredi <miklos@szeredi.hu>
981
982 * kernel API: add padding to structures, so 64bit and 32bit
983 compiler will return the same size
984
985 * kernel API: add offset field to fuse_dirent. This will allow
986 more sophisticated readdir interface for userspace
987
988 * kernel API: change major number to 6
989
990 * kernel: fix warnings on 64bit archs
991
992 * kernel: in case of API version mismatch, return ECONNREFUSED
993
Miklos Szeredi407e6a72005-03-25 12:19:43 +00009942005-03-24 Miklos Szeredi <miklos@szeredi.hu>
995
996 * kernel: trivial cleanups
997
Miklos Szeredi4283ee72005-03-21 12:09:04 +00009982005-03-21 Miklos Szeredi <miklos@szeredi.hu>
999
1000 * Add fsyncdir() operation
1001
Miklos Szeredid17da462005-03-21 11:47:04 +000010022005-03-19 Miklos Szeredi <miklos@szeredi.hu>
1003
1004 * kernel: add locking to background list (fixes previous fix)
1005
10062005-03-18 Miklos Szeredi <miklos@szeredi.hu>
1007
1008 * kernel: fix bug which could cause leave busy inodes after
1009 unmount, and Oops.
1010
10112005-03-08 Miklos Szeredi <miklos@szeredi.hu>
1012
1013 * examples: add -lpthread to link flags to work around valgrind
1014 quirk
1015
1016 * lib: don't exit threads, so cancelation doesn't cause segfault
1017
Miklos Szeredi31fa41c2005-03-04 17:28:51 +000010182005-03-04 Miklos Szeredi <miklos@szeredi.hu>
1019
1020 * kernel: fix nasty bug which could cause an Oops under certain
1021 situations. Found by Magnus Johansson
1022
Miklos Szeredif43f0632005-02-28 11:46:56 +000010232005-02-28 Miklos Szeredi <miklos@szeredi.hu>
1024
Miklos Szeredi159bd7e2005-02-28 17:32:16 +00001025 * libfuse: added opendir() method. This can be used in case
Miklos Szeredif43f0632005-02-28 11:46:56 +00001026 permission checking in getdir() is too late. Thanks to Usarin
1027 Heininga for pointing out this deficiency
1028
Miklos Szeredi159bd7e2005-02-28 17:32:16 +00001029 * libfuse: added init() and destroy() methods to fuse_operations
1030
Miklos Szeredif43f0632005-02-28 11:46:56 +00001031 * kernel: llseek() method for files and directories made explicit
1032
1033 * kernel: fixed inode leak in NFS export in case of nodeid
1034 wrapping
1035
Miklos Szeredied3c97c2005-02-15 17:04:50 +000010362005-02-15 Miklos Szeredi <miklos@szeredi.hu>
1037
1038 * libfuse: clean up some unitialized memory found with valgrind
1039
Miklos Szeredi47c52982005-02-23 09:27:38 +00001040 * Add -lpthread to Libs in fuse.pc. Valgrind seems to need an
1041 explicitly linked libpthread for applications
1042
Miklos Szeredia7169412005-02-10 07:35:05 +000010432005-02-10 Miklos Szeredi <miklos@szeredi.hu>
1044
1045 * fusermount: set umask, otherwise /etc/mtab will have
1046 unpredictable permission. Spotted by Jindrich Kolorenc
1047
1048 * fusermount: set owner and group of /etc/mtab to original values
1049 on unmount
Miklos Szeredi830ef702005-02-10 19:39:34 +00001050
1051 * libfuse: add 'use_ino' option to help. Patch by Valient Gough
Miklos Szeredi21019c92005-05-09 11:22:41 +00001052
Miklos Szeredib92d9782005-02-07 16:10:49 +000010532005-02-07 Miklos Szeredi <miklos@szeredi.hu>
1054
1055 * Cleaned up directory reading (temporary file is not used)
1056
Miklos Szerediff30a6c2005-02-02 10:53:59 +000010572005-02-02 Miklos Szeredi <miklos@szeredi.hu>
1058
Miklos Szeredi7ed2e5d2005-02-02 13:31:14 +00001059 * Released 2.2
1060
10612005-02-02 Miklos Szeredi <miklos@szeredi.hu>
1062
Miklos Szerediff30a6c2005-02-02 10:53:59 +00001063 * Fix possible race when operation is interrupted
1064
Miklos Szeredi7a983952005-01-28 09:58:19 +000010652005-01-28 Miklos Szeredi <miklos@szeredi.hu>
1066
Miklos Szeredie5183742005-02-02 11:14:04 +00001067 * Fix compilation on 2.6.7
Miklos Szeredi7a983952005-01-28 09:58:19 +00001068
Miklos Szeredied6b5dd2005-01-26 17:07:59 +000010692005-01-26 Miklos Szeredi <miklos@szeredi.hu>
1070
Miklos Szeredid48d5f72005-01-26 20:43:41 +00001071 * Released 2.2-pre6
1072
10732005-01-26 Miklos Szeredi <miklos@szeredi.hu>
1074
Miklos Szeredied6b5dd2005-01-26 17:07:59 +00001075 * Fix bug in link() operation which caused the wrong path to be
1076 passed as the first argument. Found by Anton Altaparmakov
1077
Miklos Szeredi01fd89c2005-01-21 11:18:35 +000010782005-01-21 Miklos Szeredi <miklos@szeredi.hu>
1079
1080 * LIB: fix double reply in readdir operation
1081
Miklos Szeredi773d4ae2005-01-21 16:09:08 +00001082 * fusermount: fix uid checking bug. Patch by Adam Connell
1083
Miklos Szeredi1e1cddf2005-02-02 10:15:36 +00001084 * KERNEL: fix compile on various RedHat patched 2.4 kernels.
Miklos Szeredi57762852005-01-21 16:46:58 +00001085 Patch by Keshava Gowda
1086
Miklos Szeredi64074142005-01-20 08:48:11 +000010872005-01-20 Miklos Szeredi <miklos@szeredi.hu>
1088
Miklos Szeredi092b50b2005-01-20 18:05:07 +00001089 * KERNEL: provide correct llseek semantics for fuse device (fixes
1090 a bug on Progeny 2.4.20 kernel). Reported by Valient Gough
1091
10922005-01-20 Miklos Szeredi <miklos@szeredi.hu>
1093
Miklos Szeredi64074142005-01-20 08:48:11 +00001094 * Released 2.2-pre5 (matches kernel 2.6.11-rc1-mm2)
1095
Miklos Szeredi1adb2272005-01-18 21:19:58 +000010962005-01-18 Miklos Szeredi <miklos@szeredi.hu>
1097
1098 * KERNEL ABI: remove GETDIR operation, and add OPENDIR, READDIR
1099 and RELEASEDIR. This ends the ugly hack of passing a file
1100 descriptor to the kernel, and actually makes the code simpler.
1101
Miklos Szeredi7db35c02005-01-17 09:46:28 +000011022005-01-17 Miklos Szeredi <miklos@szeredi.hu>
1103
Miklos Szeredic2e960e2005-01-17 13:05:21 +00001104 * Released 2.2-pre4
1105
11062005-01-17 Miklos Szeredi <miklos@szeredi.hu>
1107
Miklos Szeredi7db35c02005-01-17 09:46:28 +00001108 * fusermount: remove capability setting, which was the cause of
1109 problems for some users. It seems that FS related capabilities
Miklos Szeredie5183742005-02-02 11:14:04 +00001110 are removed by setfsuid(), so this isn't even needed.
Miklos Szeredi7db35c02005-01-17 09:46:28 +00001111
Miklos Szeredidbe0f652005-01-15 14:32:56 +000011122005-01-15 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi9ed69ba2005-01-13 12:11:49 +00001113
Miklos Szeredidbe0f652005-01-15 14:32:56 +00001114 * fix compilation on 2.4 kernels (reported by Valient Gough)
1115
1116 * fix failure to unmount bug (found by David Shaw)
Miklos Szeredie5183742005-02-02 11:14:04 +00001117
Miklos Szeredi5ef2a9b2005-01-15 09:42:01 +00001118 * fusermount: improve parsing of /etc/fuse.conf
1119
11202005-01-13 Miklos Szeredi <miklos@szeredi.hu>
1121
Miklos Szeredi9ed69ba2005-01-13 12:11:49 +00001122 * Remove 'mount_max' and 'user_allow_other' module options. These
1123 are now checked by fusermount, and can be set in /etc/fuse.conf
1124
1125 * KERNEL: change check for fsid == 0 to capable(CAP_DAC_OVERRIDE)
1126
Miklos Szeredi81394522005-01-11 14:24:18 +000011272005-01-11 Miklos Szeredi <miklos@szeredi.hu>
1128
1129 * KERNEL: fix possible inode allocation problem, where
1130 sizeof(struct inode) is not aligned (found by Mike Waychison)
1131
1132 * KERNEL: use new follow_link/put_link methods
1133
1134 * KERNEL: cosmetic fixes
1135
Miklos Szeredic6ee9fd2005-01-10 09:53:04 +000011362005-01-10 Miklos Szeredi <miklos@szeredi.hu>
1137
1138 * Released 2.2-pre3
1139
11402005-01-10 Miklos Szeredi <miklos@szeredi.hu>
1141
1142 * Add missing code that was accidently left out
1143
Miklos Szeredi8c7da232005-01-09 12:27:41 +000011442005-01-09 Miklos Szeredi <miklos@szeredi.hu>
1145
Miklos Szeredi8d775f72005-01-09 20:22:53 +00001146 * Released 2.2-pre2
1147
11482005-01-09 Miklos Szeredi <miklos@szeredi.hu>
1149
Miklos Szeredi3c7d41b2005-01-09 20:05:27 +00001150 * Change "uid" mount option to "user_id" to avoid confusion with a
1151 mount option "uid" commonly used by many filesystems
1152
11532005-01-09 Miklos Szeredi <miklos@szeredi.hu>
1154
Miklos Szeredi8c7da232005-01-09 12:27:41 +00001155 * Released 2.2-pre1
1156
11572005-01-09 Miklos Szeredi <miklos@szeredi.hu>
1158
1159 * If FUSE is configured in the kernel, don't build it by default
1160
Miklos Szeredi2a927272005-01-07 11:14:15 +000011612005-01-07 Miklos Szeredi <miklos@szeredi.hu>
1162
1163 * Compile fix by Christian Magnusson
1164
Miklos Szeredib6220192005-01-05 16:19:10 +000011652005-01-05 Miklos Szeredi <miklos@szeredi.hu>
1166
1167 * Fix compilation for 2.6.{0-5} kernels
1168
Miklos Szeredi0f62d722005-01-04 12:45:54 +000011692005-01-04 Miklos Szeredi <miklos@szeredi.hu>
1170
1171 * KERNEL: if request is interrupted, still keep reference to used
1172 inode(s) and file, so that FORGET and RELEASE are not sent until
1173 userspace finishes the request.
1174
Miklos Szeredi3f0005f2005-01-04 19:24:31 +00001175 * remove /{sys,proc}/fs/fuse/version, and instead add an INIT
1176 request with the same information, which is more flexible,
1177 simpler, works on embedded systems.
1178
Miklos Szeredi0f62d722005-01-04 12:45:54 +000011792004-12-16 Miklos Szeredi <miklos@szeredi.hu>
1180
1181 * KERNEL ABI: update interface to make it independent of type
1182 sizes. This will help on 64 bit architectures which can run
1183 legacy 32 bit applications.
1184
1185 * KERNEL ABI: add "len" field to request headers. This will allow
1186 sending/receiving requests in multiple chunks.
1187
1188 * KERNEL: handle file type change more intelligently
1189
1190 * LIB: "-o debug" option should disable backgrounding (fix by
1191 Fabien Reygrobellet)
1192
Miklos Szeredi0fcfa032004-12-13 15:22:28 +000011932004-12-13 Miklos Szeredi <miklos@szeredi.hu>
1194
1195 * KERNEL: invalidate dentry/attributes if interrupted request
1196 could leave filesystem in an unknown state.
1197
Miklos Szeredie56818b2004-12-12 11:45:24 +000011982004-12-12 Miklos Szeredi <miklos@szeredi.hu>
1199
1200 * KERNEL: lots of cleanups related to avoiding possible deadlocks.
1201 These will cause some regressions, but stability is considered
1202 more important. If any of these features turns out to be
1203 important, it can be readded with the deadlock problems addressed.
Miklos Szeredie5183742005-02-02 11:14:04 +00001204
Miklos Szeredie56818b2004-12-12 11:45:24 +00001205 * Make all requests interruptible (only with SIGKILL currently).
1206 This can be used to break any deadlock produced by the userspace
1207 filesystem accessing it's own exported files. The RELEASE request
1208 is special, because if it's interrupted before sending it to
1209 userspace it is still sent, but the reply is not awaited.
1210
1211 * If request is interrupted before being sent to userspace, and if
1212 it hasn't yet got any side effects, it is always restarted,
1213 regardless of the SA_RESTART flag. This makes these interruptions
1214 transparent to the process.
1215
1216 * Remove shared-writable mmap support, which was prone to an
1217 out-of-memory deadlock situation
1218
1219 * Remove INVALIDATE userspace initiated request
1220
1221 * Make readpages() synchronous. Asynchronous requests are
1222 deadlock prone, since they cannot be interrupted.
1223
1224 * Add readv/writev support to fuse device operations
1225
1226 * Remove some printks, which userspace FS can use for a DoS
1227 against syslog
1228
1229 * Remove 'large_read' mount option from 2.6 in kernel, check it in
1230 fusermount instead
1231
1232 * LIB: improve compatibility with a fuse.h header installed in
1233 ${prefix}/include which in turn includes the real header.
1234
1235 * LIB: improve compatibility by defining fuse_main() (which is now
1236 not used), so old configure scripts find it.
1237
Miklos Szeredi0adcc6f2004-12-10 11:55:25 +000012382004-12-10 Miklos Szeredi <miklos@szeredi.hu>
1239
1240 * When mounting on a subdirectory of / don't duplicate slashes at
1241 the beggining of path (spotted by David Shaw)
1242
Miklos Szeredi80a0c3c2004-12-09 17:30:59 +000012432004-12-09 Miklos Szeredi <miklos@szeredi.hu>
1244
1245 * Fix bug causing garbage in mount options (spotted by David Shaw)
1246
Miklos Szeredid59bb9d2004-12-07 10:04:24 +000012472004-12-07 Miklos Szeredi <miklos@szeredi.hu>
1248
1249 * Add 'writepage' flag to 'fuse_file_info'.
1250
1251 * More comments in fuse.h
1252
Miklos Szeredif458b8c2004-12-07 16:46:42 +00001253 * Get rid of double underscores
1254
Miklos Szeredi799993c2004-12-04 21:20:05 +000012552004-12-04 Miklos Szeredi <miklos@szeredi.hu>
1256
1257 * Add -D_FILE_OFFSET_BITS=64 to cflags provided by pkg-config
1258
1259 * helper.c: add -ho option, which only displays the options not
1260 the usage header. This can be used by filesystems which have
1261 their own options.
1262
Miklos Szeredi0b6a0ad2004-12-04 00:40:50 +000012632004-12-03 Miklos Szeredi <miklos@szeredi.hu>
1264
1265 * Add source compatibility to 2.1 and 1.1 APIs. To select betwen
1266 versions simply define FUSE_USE_VERSION to 22, 21 or 11 before
1267 including the fuse header
1268
1269 * Add binary compatibility to 2.1 version of library with symbol
1270 versioning
1271
Miklos Szeredi3c7d41b2005-01-09 20:05:27 +000012722004-12-03 Miklos Szeredi <miklos@szeredi.hu>
1273
1274 * Released 2.1
1275
Miklos Szeredi039322d2004-12-01 18:39:12 +000012762004-12-01 Miklos Szeredi <miklos@szeredi.hu>
1277
1278 * kernel: clean up writing functions
1279
1280 * kernel: no allocation on write in direct_io mode
1281
Miklos Szeredib9b94cd2004-12-01 18:56:39 +00001282 * move linux/fuse.h to fuse_kernel.h
1283
Miklos Szeredi83a07442004-11-30 18:25:20 +000012842004-11-30 Miklos Szeredi <miklos@szeredi.hu>
1285
1286 * kernel: clean up reading functions
1287
Miklos Szeredi2defe5e2004-11-29 16:53:44 +000012882004-11-29 Miklos Szeredi <miklos@szeredi.hu>
1289
1290 * kernel: make readpage() uninterruptible
1291
Miklos Szeredi96dfad72004-11-30 00:00:02 +00001292 * kernel: check readonly filesystem flag in fuse_permission
1293
1294 * lib: don't die if version file not found and new style device
1295 exists
1296
1297 * lib: add '-r' option, which is short for '-o ro'
1298
1299 * fusermount: simplify device opening
1300
Miklos Szeredi2defe5e2004-11-29 16:53:44 +00001301 * kernel: when direct_io is turend on, copy data directly to
1302 destination without itermediate buffer. More efficient and safer,
1303 since no allocation is done.
1304
1305 * fusermount: fix warning if fuse module is not loaded
Miklos Szeredi162bcbb2004-11-29 23:43:44 +00001306
1307 * kernel: use /dev/fuse on 2.4 too
Miklos Szeredie5183742005-02-02 11:14:04 +00001308
Miklos Szeredifb28c5e2004-11-26 12:15:06 +000013092004-11-26 Miklos Szeredi <miklos@szeredi.hu>
1310
1311 * libfuse API change: open, read, write, flush, fsync and release
1312 are passed a 'struct fuse_file_info' pointer containing the open
1313 flags (open and release), and the file handle. Verion changed to
1314 3.0.
1315
Miklos Szeredia25d4c22004-11-23 22:32:16 +000013162004-11-23 Miklos Szeredi <miklos@szeredi.hu>
1317
1318 * More cleanups in the kernel
1319
1320 * The 10,229 charater device number has been assigned for FUSE
1321
1322 * Version file checking fix (reported by Christian Magnusson)
1323
1324 * fusermount: opening the fuse device now doesn't need /sys.
1325
1326 * Optimize reading by controlling the maximum readahead based on
1327 the 'max_read' mount option
1328
1329 * fixes for UCLIBC (Christian Magnusson)
1330
Miklos Szeredi13ed4822004-11-20 11:12:21 +000013312004-11-19 Miklos Szeredi <miklos@szeredi.hu>
1332
1333 * Cleaned up kernel in preparation for merge into mainline:
1334
1335 * Use /sys/fs/fuse/version instead of /proc/fs/fuse/version
1336
1337 * Use real device (/dev/fuse) instead of /proc/fs/fuse/dev
1338
1339 * __user annotations for sparse
1340
1341 * allocate individual pages instead of kmalloc in fuse_readdir,
1342 fuse_read and fuse_write.
1343
1344 * Fix NFS export in case "use_ino" mount option is given
1345
Miklos Szeredif3845c42004-11-20 11:18:34 +00001346 * Make libfuse and fusermount compatible with future versions
1347
1348 * fusermount: properly add mount options to /etc/mtab
1349
13502004-11-15 Miklos Szeredi <miklos@szeredi.hu>
1351
1352 * fusermount: do not resolve last component of mountpoint on if it
1353 is '.' or '..'. This new path resolvation is now done on mount as
1354 well as unmount. This enables relative paths to work on unmount.
1355
1356 * fusermount: parse common mount options like "ro", "rw", etc...
1357
1358 * Allow module params to be changed through sysfs
1359
Miklos Szeredi08ddb8e2004-11-14 09:19:51 +000013602004-11-14 Miklos Szeredi <miklos@szeredi.hu>
1361
1362 * Released 2.1-pre1
1363
13642004-11-14 Miklos Szeredi <miklos@szeredi.hu>
1365
1366 * Fix bug in fuse_readpages() causing Oops in certain situations.
1367 Bug found by Vincenzo Ciancia.
1368
1369 * Fix compilation with kernels versions > 2.6.9.
1370
Miklos Szeredi3a6ea062004-11-11 10:33:58 +000013712004-11-11 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi51ec1032004-11-10 11:52:26 +00001372
Miklos Szeredi3a6ea062004-11-11 10:33:58 +00001373 * Check kernel interface version in fusermount to prevent
1374 strangeness in case of mismatch.
Miklos Szeredi51ec1032004-11-10 11:52:26 +00001375
Miklos Szeredi3d60e762004-11-11 14:44:04 +00001376 * No need to allocate fuse_conn until actual mount happens
1377
1378 * Fix potential race between umount and fuse_invalidate
1379
1380 * Check superblock of proc file in addition to inode number
1381
Miklos Szeredi08ddb8e2004-11-14 09:19:51 +00001382 * Fix race between request_send_noreply() and fuse_dev_release()
Miklos Szeredi3d60e762004-11-11 14:44:04 +00001383
Miklos Szeredi51ec1032004-11-10 11:52:26 +000013842004-11-10 Miklos Szeredi <miklos@szeredi.hu>
1385
1386 * Separate configure for the kernel directory
1387
Miklos Szeredi3a6ea062004-11-11 10:33:58 +00001388 * Don't allow write to return more than 'count'
1389
1390 * Extend kernel interface for future use
1391
Miklos Szeredi51ec1032004-11-10 11:52:26 +000013922004-11-09 Miklos Szeredi <miklos@szeredi.hu>
1393
1394 * Fix 'makeconf.sh' to use autoreconf if available
1395
Miklos Szeredi8fb48fe2004-11-08 14:48:52 +000013962004-11-08 Miklos Szeredi <miklos@szeredi.hu>
1397
Miklos Szeredid507c732004-11-08 17:32:25 +00001398 * Add ino argument to 'fuse_dirfil_t'. NOTE: This breaks source
1399 compatibility with earlier versions. To compile earier versions
1400 just add '-DFUSE_DIRFIL_COMPAT' compile flag or fix the source.
1401 Do not use the "use_ino" mount flag with filesystems compiled with
1402 FUSE_DIRFIL_COMPAT.
Miklos Szeredidb1c3652004-11-08 21:11:53 +00001403
1404 * Add pkg-config support. To compile a FUSE based filesystem you
1405 can do "gcc -Wall `pkg-config --cflags --libs fuse` myfs.c -o myfs"
1406 or similar. Note, that the PKG_CONFIG_PATH environment variable
1407 usually needs to be set to "/usr/local/lib/pkgconfig".
1408
1409 * fuse.h is now installed in ${prefix}/include/fuse/
Miklos Szeredie5183742005-02-02 11:14:04 +00001410
Miklos Szeredia13d9002004-11-02 17:32:03 +000014112004-11-02 Miklos Szeredi <miklos@szeredi.hu>
1412
1413 * Added "use_ino" mount option. This enables the filesystems to
1414 set the st_ino field on files
1415
Miklos Szeredib1ab8b52004-11-01 10:57:41 +000014162004-11-01 Miklos Szeredi <miklos@szeredi.hu>
1417
1418 * Fix compile problems with ancient (<=2.4.18) kernels (reported
1419 by Jeremy Smith)
1420
Miklos Szeredi874e3c12004-11-01 23:15:20 +00001421 * Add "allow_root" mount option. Patch by Yaroslav Rastrigin
1422
1423 * Clear the 'exited' flag when mail loop is finished
1424
Miklos Szeredie989f0d2004-10-28 20:24:58 +000014252004-10-28 Miklos Szeredi <miklos@szeredi.hu>
1426
1427 * Make xattr functions work under 2.6 (bug found by Vincenzo
1428 Ciancia)
1429
Miklos Szeredi95a2bfc2004-10-26 21:32:13 +000014302004-10-26 Miklos Szeredi <miklos@szeredi.hu>
1431
1432 * Reset request in fuse_flush() (bugreport by David Shaw)
1433
Miklos Szeredi5dc8a802004-10-21 09:35:10 +000014342004-10-21 Miklos Szeredi <miklos@szeredi.hu>
1435
Miklos Szeredi0e70aa72004-10-21 16:24:29 +00001436 * fuse_main() now does not exit on error, rather it returns an
Miklos Szeredi5dc8a802004-10-21 09:35:10 +00001437 error code
1438
Miklos Szeredifb97a1b2004-10-21 09:59:13 +00001439 * Exported __fuse_setup() and __fuse_teardown() functions, which
Miklos Szeredi5dc8a802004-10-21 09:35:10 +00001440 make it easier to implement a custom event loop.
1441
Miklos Szeredifb97a1b2004-10-21 09:59:13 +00001442 * Use daemon() call to background the filesystem after mounting.
1443 This function closes the standard input, output and error and
1444 changes the current working directory to "/".
1445
Miklos Szeredi127d49b2004-10-14 13:33:39 +000014462004-10-14 Miklos Szeredi <miklos@szeredi.hu>
1447
1448 * Released 1.9
1449
Miklos Szeredid45baf42004-10-10 07:56:12 +000014502004-10-09 Miklos Szeredi <miklos@szeredi.hu>
1451
1452 * Don't allow fuse_flush() to be interrupted (bug found by David
1453 Shaw)
1454
Miklos Szeredi1f18db52004-09-27 06:54:49 +000014552004-09-27 Miklos Szeredi <miklos@szeredi.hu>
1456
1457 * Add PID to fuse_context. Patch by Steven James
1458
Miklos Szeredi1eea0322004-09-27 18:50:11 +00001459 * Change file handle type to 'unsigned long' in kernel interface
1460
Miklos Szeredid169f312004-09-22 08:48:26 +000014612004-09-22 Miklos Szeredi <miklos@szeredi.hu>
1462
1463 * A slight API change: fuse_get_context() doesn't need the "fuse"
1464 pointer, but the returned context contains it instead. The
1465 fuse_get() function is not needed anymore, so it's removed.
Miklos Szeredi21d587e2004-09-22 16:47:40 +00001466
1467 * Fix mounting and umounting FUSE filesystem under another FUSE
1468 filesystem by non-root (bug spotted by Valient Gough)
Miklos Szeredie5183742005-02-02 11:14:04 +00001469
Miklos Szeredic2309912004-09-21 13:40:38 +000014702004-09-21 Miklos Szeredi <miklos@szeredi.hu>
1471
1472 * Fix deadlock in case of memory allocation failure. Patch by
1473 Christian Magnusson
Miklos Szeredie5183742005-02-02 11:14:04 +00001474
Miklos Szeredib2cf9562004-09-16 08:42:40 +000014752004-09-16 Miklos Szeredi <miklos@szeredi.hu>
1476
1477 * Check memory allocation failures in libfuse
Miklos Szeredie5183742005-02-02 11:14:04 +00001478
Miklos Szeredi65afea12004-09-14 07:13:45 +000014792004-09-14 Miklos Szeredi <miklos@szeredi.hu>
1480
1481 * Check temporary file creation failure in do_getdir(). Bug
1482 spotted by Terje Oseberg
Miklos Szeredie5183742005-02-02 11:14:04 +00001483
Miklos Szeredi1bf53ee2004-09-13 11:47:59 +000014842004-09-13 Miklos Szeredi <miklos@szeredi.hu>
1485
1486 * Allow "large_read" option for 2.6 kernels but warn of deprecation
Miklos Szeredi09045c32004-09-13 12:00:49 +00001487
1488 * Make requests non-interruptible so race with FORGET is avoided.
1489 This is only a temporary solution
Miklos Szeredi442d9652004-09-13 14:56:57 +00001490
1491 * Support compiling FUSE kernel module on 2.4.x UML kernels
Miklos Szeredie5183742005-02-02 11:14:04 +00001492
Miklos Szeredi8b2d3332004-09-09 08:44:01 +000014932004-09-09 Miklos Szeredi <miklos@szeredi.hu>
1494
1495 * Fix bug in case two FORGETs for the same node are executed in
1496 the wrong order. Bug spotted and endured for months by Franco
1497 Broi, and logfile for solution provided by Terje Oseberg
1498
Miklos Szeredi12085102004-09-02 18:13:57 +000014992004-09-01 Miklos Szeredi <miklos@szeredi.hu>
1500
1501 * Add -D_REENTRANT to the compile flags
1502
1503 * Add documentation of fuse internals by Terje Oseberg
Miklos Szeredie5183742005-02-02 11:14:04 +00001504
Miklos Szeredi22ea3dc2004-08-16 13:29:11 +000015052004-08-16 Miklos Szeredi <miklos@szeredi.hu>
1506
1507 * Change release method to be non-interruptible. Fixes bug
1508 causing missing release() call when program which has opened files
1509 is killed (reported by Franco Broi and David Shaw)
Miklos Szeredie5183742005-02-02 11:14:04 +00001510
Miklos Szeredi891b8742004-07-29 09:27:49 +000015112004-07-29 Miklos Szeredi <miklos@szeredi.hu>
1512
1513 * Add fuse_invalidate() to library API
1514
Miklos Szeredi94ed76a2004-07-26 19:38:45 +000015152004-07-26 Miklos Szeredi <miklos@szeredi.hu>
1516
1517 * Check permissions in setattr if 'default_permissions' flag is
1518 set. Bug spotted by Damjan Lango
1519
Miklos Szeredid66d3942004-07-24 13:47:44 +000015202004-07-24 Miklos Szeredi <miklos@szeredi.hu>
1521
Miklos Szeredi209f5d02004-07-24 19:56:16 +00001522 * 'large_read' mount option removed for 2.6 kernels, since the
1523 default (dynamic read size) is better
1524
1525 * Extend kernel API with file handles. A file handle is returned
1526 by open, and passed to read, write, flush, fsync and release.
1527 This is currently only used for debug output in the library.
Miklos Szeredie5183742005-02-02 11:14:04 +00001528
Miklos Szeredi209f5d02004-07-24 19:56:16 +00001529 * Security changes:
1530
1531 * Change the current directory to the mountpoint before checking
1532 the permissions and mount filesystem on "."
1533
1534 * By default don't modprobe the fuse module for non-root. The old
1535 behavior can be restored with the '--enable-auto-modprobe' flag of
1536 ./configure
1537
1538 * By default don't allow shared writable mappings for non-root.
1539 The old behavior can be restored with the 'user_mmap=1' module
1540 parameter
Miklos Szeredid66d3942004-07-24 13:47:44 +00001541
Miklos Szeredibd7661b2004-07-23 17:16:29 +000015422004-07-23 Miklos Szeredi <miklos@szeredi.hu>
1543
1544 * Clean up mount option passing to fusermount and to fuse_new()
1545 BEWARE: this changes the userspace API slightly, and the command
1546 line usage of programs using fuse_main()
Miklos Szeredie5183742005-02-02 11:14:04 +00001547
Miklos Szeredi58865372004-07-20 14:22:26 +000015482004-07-20 Miklos Szeredi <miklos@szeredi.hu>
1549
1550 * Optimize reading under 2.6 kernels by issuing multiple page
1551 asynchronous read requests
Miklos Szeredie5183742005-02-02 11:14:04 +00001552
Miklos Szeredi84ba0f42004-07-18 11:32:59 +000015532004-07-18 Miklos Szeredi <miklos@szeredi.hu>
1554
1555 * Only use redirty_page_for_writepage() for kernels >= 2.6.6
Miklos Szeredie5183742005-02-02 11:14:04 +00001556
Miklos Szeredi069c9502004-07-16 16:17:02 +000015572004-07-16 Miklos Szeredi <miklos@szeredi.hu>
1558
1559 * Separate directory entry and inode attribute validity timer
1560
1561 * New write semaphore to stop page writeback during truncate
1562
1563 * Fsync now waits for all writes to complete before sending the
1564 request
1565
1566 * Optimization: if a page is completely written by
1567 fuse_commit_write(), clear the dirty flag and set the uptodate
1568 flag for that page
1569
Miklos Szeredie7d5d7d2004-07-16 18:27:50 +00001570 * Some memory cleanup at exit
1571
Miklos Szeredi2529ca22004-07-13 15:36:52 +000015722004-07-13 Miklos Szeredi <miklos@szeredi.hu>
1573
1574 * Add FUSE_HARD_REMOVE flag, and '-i' option to fuse main, which
Miklos Szerediad83d072004-07-13 20:23:03 +00001575 disable the "hide if open" behavior of unlink/rename.
1576
1577 * If temporary buffer allocation fails in raw read, fall back to a
1578 smaller buffer
Miklos Szeredie5183742005-02-02 11:14:04 +00001579
Miklos Szeredi73798f92004-07-12 15:55:11 +000015802004-07-12 Miklos Szeredi <miklos@szeredi.hu>
1581
1582 * Fix bug in do_open() in libfuse: open count was incremented
1583 after the reply is sent so it could race with unlink/forget and
1584 cause an abort.
Miklos Szeredie5183742005-02-02 11:14:04 +00001585
Miklos Szeredi015fe702004-07-12 11:52:24 +000015862004-07-08 Miklos Szeredi <miklos@szeredi.hu>
1587
1588 * When performing create or remove operation, refresh the parent's
1589 attributes on next revalidate, as i_nlink (and maybe size/time)
1590 could be inacurate.
1591
1592 * Use redirty_page_for_writepage() in fuse_writepage() for skipped
1593 pages (2.6 only)
1594
1595 * Set set_page_dirty address space operation (2.6 only)
1596
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000015972004-07-06 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi25385bb2004-07-06 22:27:36 +00001598
1599 * Minor fix in read: print debug info even if read size is zero
1600
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016012004-07-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi58615e02004-07-04 21:21:08 +00001602
1603 * Fix race between truncate and writepage (fsx-linux now runs
1604 without error)
1605
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016062004-07-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szerediad051c32004-07-02 09:22:50 +00001607
1608 * Fix kernel hang on mkfifo under 2.4 kernels (spotted and patch
1609 by Mattias Wadman)
1610
1611 * Added option for direct read/write (-r)
1612
1613 * Fix revalidate time setting for newly created inodes
1614
Miklos Szerediacb4d362004-07-02 16:20:45 +00001615 * Remove uid==0 check for '-x' option in fusermount (kernel checks
1616 this)
1617
1618 * fuse_main() only installs handlers for signals (out of INT, HUP,
1619 TERM, PIPE), for which no handler has yet been installed
1620
1621 * Add module option 'user_allow_other' which if set to non-zero
1622 will allow non root user to specify the 'allow_other' mount option
1623 ('-x' option of fusermount)
1624
Miklos Szeredi014d7d22004-07-02 21:22:37 +00001625 * Fix deadlock between page writeback completion and truncate
1626 (bug found by Valient Gough with the fsx-linux utility)
1627
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016282004-07-01 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szerediad051c32004-07-02 09:22:50 +00001629
1630 * Change passing fuse include dir to 2.6 kernel make system more
Miklos Szerediacb4d362004-07-02 16:20:45 +00001631 robust (fixes compile problems seen on SuSE 9.1 with updated 2.6
1632 kernel)
Miklos Szerediad051c32004-07-02 09:22:50 +00001633
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016342004-06-30 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi556d03d2004-06-30 11:13:41 +00001635
1636 * Acquire inode->i_sem before open and release methods to prevent
1637 concurrent rename or unlink operations.
1638
Miklos Szeredi65cf7c72004-06-30 11:34:56 +00001639 * Make __fuse_read_cmd() read only one command. This allows
1640 multiplexing the fuse file descriptor with other event sources
1641 using select() or poll() (patch by Jeff Harris)
1642
1643 * Export 'exited' flag with __fuse_exited() (patch by Jeff Harris)
1644
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016452004-06-27 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi71e9f862004-06-28 16:52:16 +00001646
1647 * Fix file offset wrap around at 4G when doing large reads
1648
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016492004-06-24 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi1ea9c962004-06-24 21:00:00 +00001650
Miklos Szeredi9a31cca2004-06-26 21:11:25 +00001651 * Fix memory leak in open (Valient Gough)
1652
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016532004-06-24 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi9a31cca2004-06-26 21:11:25 +00001654
Miklos Szeredi1ea9c962004-06-24 21:00:00 +00001655 * Add "close after delete" support to libfuse (patch by Valient
1656 Gough)
1657
1658 * Cancel all worker threads before exit in multithreaded mode
1659
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016602004-06-23 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie79dc7e2004-06-23 05:57:30 +00001661
1662 * Fix locking bugs
Miklos Szeredib3210582004-06-23 13:54:33 +00001663
1664 * Don't send reply to RELEASE
Miklos Szeredicb264512004-06-23 18:52:50 +00001665
1666 * Work with newer libtool (1.5a)
1667
1668 * Check for st_atim member of struct stat
Miklos Szeredie5183742005-02-02 11:14:04 +00001669
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016702004-06-22 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredid3dd2d52004-06-22 18:46:02 +00001671
1672 * No request allocation needed on inode and file release
Miklos Szeredie5183742005-02-02 11:14:04 +00001673
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016742004-06-21 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi2778f6c2004-06-21 09:45:30 +00001675
1676 * Fix possible inode leak in userspace in case of unfinished
1677 lookup/mknod/mkdir/symlink/link operation.
Miklos Szeredie5183742005-02-02 11:14:04 +00001678
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016792004-06-20 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredied62d862004-06-20 08:57:39 +00001680
1681 * Fix some races and cleanups in fuse_read_super()
Miklos Szeredie5183742005-02-02 11:14:04 +00001682
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016832004-06-19 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi7eafcce2004-06-19 22:42:38 +00001684
1685 * Requests are allocated at open time
Miklos Szeredie5183742005-02-02 11:14:04 +00001686
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016872004-06-03 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi203afbf2004-06-03 13:21:08 +00001688
1689 * Build shared library as well as static (using libtool)
1690
1691 * Change FUSE_MINOR_VERSION from 1 to 0. I know it's illegal but
1692 there has not been a release with the previous minor number, and I
1693 hope nobody is using it for anything.
Miklos Szerediff875352004-06-03 13:52:40 +00001694
1695 * Change fuse_main(), so that default behavior is to go into
1696 background if mount is successful. '-f' and '-d' options disable
1697 backgrounding. This fixes the "Why does my FUSE daemon hang?"
1698 newbie complaint.
Miklos Szeredi63b8c1c2004-06-03 14:45:04 +00001699
1700 * Cache ENOSYS (function not implemented) errors on *xattr, flush
1701 and fsync
Miklos Szeredi152f29e2004-06-03 17:52:32 +00001702
1703 * Don't call getdir method from open() only from first readdir().
1704 Open is sometimes just used to store the current directory
1705 (e.g. find)
Miklos Szeredie5183742005-02-02 11:14:04 +00001706
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017072004-05-18 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie2e4ac22004-05-18 08:45:28 +00001708
1709 * Added flush() call
Miklos Szeredie5183742005-02-02 11:14:04 +00001710
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017112004-05-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi689f5632004-05-04 08:49:16 +00001712
1713 * Extended attributes support for 2.4 (patch by Cody Pisto)
Miklos Szeredie5183742005-02-02 11:14:04 +00001714
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017152004-04-20 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredid30a0f22004-04-20 08:25:43 +00001716
1717 * Fixed parser with modversions (Mattias Wadman)
Miklos Szeredie5183742005-02-02 11:14:04 +00001718
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017192004-04-19 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi8ec48ec2004-04-19 10:24:41 +00001720
1721 * Added mount option parser to 2.4 build
Miklos Szeredie5183742005-02-02 11:14:04 +00001722
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017232004-04-13 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi87f30a92004-04-13 10:49:54 +00001724
1725 * Replaced binary mount data with text options
1726
1727 * Show FUSE specific mount options in /proc/mounts
1728
1729 * Check in fuse.h whether _FILE_OFFSET_BITS is set to 64
1730
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017312004-04-09 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredic26c14d2004-04-09 17:48:32 +00001732
1733 * Check some limits so userspace won't get too big requests
1734
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017352004-04-05 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi2ac5e2a2004-04-05 11:24:24 +00001736
1737 * Kill compile warning
1738
1739 * Upgraded user-mount patch for 2.6.5
1740
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017412004-04-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi851948c2004-04-02 14:58:22 +00001742
1743 * Add detection of user-mode-linux to configure
1744
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017452004-03-31 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi03cebae2004-03-31 10:19:18 +00001746
1747 * fixed zero size case for getxattr and listxattr
1748
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017492004-03-30 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi98667e22004-03-30 07:24:29 +00001750
1751 * new fusermount flag '-z': lazy unmount, default is not lazy
1752
Miklos Szeredi3ed84232004-03-30 15:17:26 +00001753 * Extended attributes operations added (getxattr, setxattr,
1754 listxattr, removexattr)
1755
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017562004-03-25 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi77f39942004-03-25 11:17:52 +00001757
1758 * If filesystem doesn't define a statfs operation, then an
1759 all-zero default statfs is returned instead of ENOSYS
1760
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017612004-03-24 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi4df9cf22004-03-24 09:19:27 +00001762
1763 * Add FS_BINARY_MOUNTDATA filesystem flag for kernels > 2.6.4
1764
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017652004-03-09 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi254d5ed2004-03-02 11:11:24 +00001766
Miklos Szeredi8af63ae2004-03-09 10:54:17 +00001767 * Fix for uClinux (Christian Magnusson)
1768
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017692004-03-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi8af63ae2004-03-09 10:54:17 +00001770
Miklos Szeredi18c1e4d2004-03-02 16:18:30 +00001771 * fuse_main() adds "-n progname" to the fusermount command line
Miklos Szeredie5183742005-02-02 11:14:04 +00001772
Miklos Szeredi254d5ed2004-03-02 11:11:24 +00001773 * More kernel interface changes:
1774
1775 * Lookup/getattr return cache timeout values
1776
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017772004-02-25 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie970f302004-02-25 08:39:42 +00001778
1779 * Clean up option parsing in fuse_main()
1780
Miklos Szeredi33c319c2004-02-25 09:19:29 +00001781 * Added fuse_get() function which returns the fuse object created
1782 by fuse_main()
1783
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017842004-02-20 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredib5958612004-02-20 14:10:49 +00001785
Miklos Szeredic40748a2004-02-20 16:38:45 +00001786 * removed old way of mounting (fusermount mountpoint program)
1787
Miklos Szeredib5958612004-02-20 14:10:49 +00001788 * more kernel interface changes:
1789
1790 * added nanosecond precision to file times
1791
Miklos Szeredic40748a2004-02-20 16:38:45 +00001792 * removed interface version from mount data
1793
1794 * added /proc/fs/fuse/version which contains MAJOR.MINOR
1795
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017962004-02-19 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi18e75e42004-02-19 14:23:27 +00001797
1798 * statfs library API changed to match other methods. Since this
1799 is not backward compatible FUSE_MAJOR_VERSION is changed to 2
1800
Miklos Szeredi76f65782004-02-19 16:55:40 +00001801 * kernel interface changes follow:
1802
1803 * statfs changed to 64 bits, added 'bavail' field
1804
1805 * add generation number to lookup result
1806
1807 * optimized mknod/mkdir/symlink/link (no separate lookup is
1808 needed)
1809
1810 * rdev size increased to 32 bits for mknod
1811
1812 * kernel interface version changed to 3.1
Miklos Szeredie5183742005-02-02 11:14:04 +00001813
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018142004-02-18 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredifa39e902004-02-18 13:29:36 +00001815
1816 * user-mount upgraded for 2.6.3 kernel
Miklos Szeredie5183742005-02-02 11:14:04 +00001817
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018182004-02-17 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi69cc79a2004-02-17 08:57:29 +00001819
1820 * Added user-mount.2.6.2-rc3.patch
1821
1822 * Add FS_SAFE flag to fuse filesystem
1823
1824 * fusermount should allow (un)mounting for non-root even if not
1825 suid-root
Miklos Szeredie5183742005-02-02 11:14:04 +00001826
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018272004-02-12 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi4c7f7622004-02-12 13:41:30 +00001828
1829 * Remove MS_PERMISSION mount flag (that means something else now)
Miklos Szeredie5183742005-02-02 11:14:04 +00001830
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018312004-02-10 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi9a2b08d2004-02-10 09:36:07 +00001832
1833 * Added check for i_size_read/write functions to configure.in
1834 (patch by Valient Gough)
1835
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018362004-02-06 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi377b2ea2004-02-06 09:48:51 +00001837
1838 * Fixed writing >= 2G files
Miklos Szeredif58cc612004-02-06 13:52:00 +00001839
1840 * Check file size on open (with generic_file_open())
Miklos Szeredid1199f82004-02-06 15:29:22 +00001841
1842 * Readpage calls flush_dcache_page() after storing data
1843
1844 * Use i_size_read/write for accessing inode->i_size
Miklos Szeredi89b86af2004-02-06 17:02:08 +00001845
1846 * Make loopback mount of a fuse file work
Miklos Szeredie5183742005-02-02 11:14:04 +00001847
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018482004-02-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi88124792004-02-04 11:06:17 +00001849
1850 * Released 1.1
Miklos Szeredie5183742005-02-02 11:14:04 +00001851
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018522004-01-29 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi72f6a932004-01-29 11:29:18 +00001853
1854 * Properly check if the inode exists in fuse_invalidate
Miklos Szeredie5183742005-02-02 11:14:04 +00001855
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018562004-01-27 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szerediedf26632004-01-27 14:54:47 +00001857
1858 * Added -q option for fusermount
1859
1860 * fuse_unmount() now uses -q option of fusermount, so no error is
1861 printed if the cause of the program exit is that the filesystem
1862 has already been unmounted
1863
Miklos Szeredif4f8b892004-01-27 17:04:59 +00001864 * Fix i_nlink correctness after rmdir/unlink
1865
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018662004-01-26 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi307242f2004-01-26 11:28:44 +00001867
Miklos Szeredib1158392004-01-26 14:43:12 +00001868 * Released 1.1-pre2
1869
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018702004-01-26 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredib1158392004-01-26 14:43:12 +00001871
Miklos Szeredi307242f2004-01-26 11:28:44 +00001872 * Fix typo (thanks Marcos Dione)
Miklos Szeredib1158392004-01-26 14:43:12 +00001873
1874 * Compile fixes for 2.4 kernels
Miklos Szeredie5183742005-02-02 11:14:04 +00001875
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018762004-01-23 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi307242f2004-01-26 11:28:44 +00001877
1878 * Fix CONFIG_MODVERSIONS compile on 2.6
Miklos Szeredie5183742005-02-02 11:14:04 +00001879
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018802004-01-22 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi307242f2004-01-26 11:28:44 +00001881
1882 * Write all pending data before a RELEASE operation
1883
1884 * Suppress 'Bad file descriptor' warning on exit
1885
1886 * Replaced fusermount option '-d xxx' with '-n xxx' so it doesn't
Miklos Szeredib1158392004-01-26 14:43:12 +00001887 get confused with '-d' of fuse_main() (sorry about this change)
Miklos Szeredi307242f2004-01-26 11:28:44 +00001888
Miklos Szeredib1158392004-01-26 14:43:12 +00001889 * New fusermount option '-l' which enables big reads. Big reads
1890 are now disabled by default.
Miklos Szeredi307242f2004-01-26 11:28:44 +00001891
1892 * fuse_main() can accept fusermount arguments after a '--'
1893
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018942004-01-19 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie815c032004-01-19 18:20:49 +00001895
1896 * Support for exporting filesystem over NFS (see README.NFS)
1897
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018982004-01-14 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi7c35cf92004-01-14 16:56:49 +00001899
1900 * Support non-blocking writepage on 2.6. This makes FUSE behave
1901 much more nicely in low-memory situations
1902
1903 * Fix 32-bit dev handling in getattr and mknod for 2.6 kernels.
1904 (Note: the mknod method does not yet use 32bit device number)
Miklos Szeredie5183742005-02-02 11:14:04 +00001905
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019062004-01-13 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie8663f32004-01-13 15:33:12 +00001907
1908 * Code cleanups
1909
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019102004-01-07 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi4b7abe32004-01-07 16:49:12 +00001911
1912 * Released 1.1-pre1
1913
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019142004-01-06 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredif85ab242004-01-07 12:16:45 +00001915
1916 * Integrated 2.6 kernel support patch by Michael Grigoriev
1917
1918 * Improvements and cleanups for 2.6 kernels
1919
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019202004-01-05 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi7ffb8cf2004-01-05 15:07:12 +00001921
Miklos Szeredie5183742005-02-02 11:14:04 +00001922 * Added -d option to fusermount
Miklos Szeredi7ffb8cf2004-01-05 15:07:12 +00001923
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019242003-12-15 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi2f3d9402003-12-15 12:11:33 +00001925
1926 * Added major+minor version to library API, and minor version to
1927 kernel API
1928
David McNab7a19caf2003-12-13 02:05:46 +000019292003-12-13 David McNab <david@rebirthing.co.nz>
1930
1931 * Implemented fsync support in examples/example.py
1932
1933 * Implemented 'fsync' and 'statfs' methods in python
1934 interface
1935
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019362003-12-12 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie4cf7332003-12-12 11:53:31 +00001937
Miklos Szeredie5183742005-02-02 11:14:04 +00001938 * Make it compile on 2.4.19.
Miklos Szeredie4cf7332003-12-12 11:53:31 +00001939
Miklos Szeredi5e43f2c2003-12-12 14:06:41 +00001940 * Add fsync operation (write file failed on xemacs & vi)
Miklos Szeredie4cf7332003-12-12 11:53:31 +00001941
David McNab8bf62632003-12-11 22:49:22 +000019422003-12-12 David McNab <david@rebirthing.co.nz>
1943
1944 * Added distutils support to the python module, as per standard
1945 python development practice
1946
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019472003-12-11 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi874d95d2003-12-11 14:27:57 +00001948
1949 * Add file locking for mount/unmount (based on patch by Valient
1950 Gough)
1951
19522003-12-11 David McNab <david@rebirthing.co.nz>
1953
1954 * Python filesystem - was broken with python2.3, now fixed:
1955 - changed PyTuple_* calls to PySequence_*, because os.lstat
1956 is no longer returning a pure tuple
1957 - changed PyInt_Check() calls to also call PyLong_Check,
1958 to cover for cases (eg os.lstat) where longs are returned
1959 - Added support for file 'release' handling, which IMO is
1960 essential since this signals to a FS that writes to a file
1961 are complete (and therefore the file can now be disposed of
1962 meaningfully at the python filesystem's discretion)
1963 - Added '__init__' handler to base Fuse class, which allows
1964 your Python class to know the mountpoint and mount args,
1965 as attributes myfs.mountpoint, myfs.optlist, myfs.optdict
Miklos Szeredie5183742005-02-02 11:14:04 +00001966
Miklos Szeredi874d95d2003-12-11 14:27:57 +00001967 * General:
1968 - added 'mount.fuse' script (in util/ dir), which is meant to be
1969 symlinked from /sbin, and which allows FUSE filesystems to
1970 be mounted with the 'mount' command, and listed in fstab;
1971 also, mount arguments get passed to your filesystem
1972
1973
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019742003-11-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredif27ec7d2003-11-04 13:46:32 +00001975
1976 * Fix kernel version detection (again). Bugreport by Peter Levart
1977
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019782003-11-03 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi36ca5562003-11-03 19:32:14 +00001979
1980 * Applied read combining patch by Michael Grigoriev (tested by
1981 Valient Gough and Vincent Wagelaar)
1982
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019832003-10-22 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredif08ace02003-10-22 11:11:57 +00001984
1985 * Mtab handling fix in fusermount by "Valient Gough" (SF patch
1986 #766443)
Miklos Szeredie5183742005-02-02 11:14:04 +00001987
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019882003-10-13 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi0e535082003-10-13 10:08:06 +00001989
1990 * Error code fixes in kernel module
Miklos Szeredie5183742005-02-02 11:14:04 +00001991
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019922003-10-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi27af48b2003-10-04 17:31:38 +00001993
1994 * kernel version detection fix
1995
1996 * fusermount now uses "lazy" umount option
1997
1998 * fusermount can use modprobe with module-init-tools
1999
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020002003-09-08 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredida4e4862003-09-08 11:14:11 +00002001
2002 * Integrated caching patch by Michael Grigoriev
2003
Miklos Szeredida4e4862003-09-08 11:14:11 +00002004 * Added "Filesystems" file with descriptions of projects using
2005 FUSE
2006
Miklos Szeredi02ceb112003-09-08 13:52:25 +00002007 * Added patch by Michael Grigoriev to allow compliation of FUSE
2008 kernel module for 2.6 kernels
2009
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020102003-06-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi84838472003-06-02 06:12:27 +00002011
2012 * And another spec-file fix by Achim Settelmeier
2013
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020142003-05-26 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi21c282b2003-05-26 07:12:57 +00002015
2016 * Spec-file fix by Achim Settelmeier
2017
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020182003-03-10 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi79b461a2003-03-10 09:35:34 +00002019
Miklos Szerediac361172004-11-02 19:14:14 +00002020 * Fix umount oops (found by Samuli Kärkkäinen)
Miklos Szeredi79b461a2003-03-10 09:35:34 +00002021
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020222003-03-05 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi941ae4c2003-03-05 08:29:58 +00002023
2024 * Merge of fuse_redhat.spec and fuse.spec by Achim Settelmeier
2025
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020262003-03-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredia9b2f262003-03-04 09:37:20 +00002027
2028 * Updated fuse.spec file (Achim Settelmeier)
2029
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020302003-02-19 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredic0226bb2003-02-19 16:05:06 +00002031
2032 * Version 1.0 released
2033
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020342003-02-12 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredifa84e0d2003-02-13 09:53:33 +00002035
2036 * SuSE compilation fix by Juan-Mariano de Goyeneche
2037
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020382002-12-10 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredic8ba2372002-12-10 12:26:00 +00002039
2040 * The release() VFS call is now exported to the FUSE interface
2041
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020422002-12-05 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi0f48a262002-12-05 14:23:01 +00002043
2044 * 64 bit file offset fixes in the fuse kernel module
2045
2046 * Added function 'fuse_exit()' which can be used to exit the main
2047 loop
2048
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020492002-12-03 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi5f054812002-12-03 18:45:21 +00002050
2051 * Added _FILE_OFFSET_BITS=64 define to fuse.h. Note, that this is
2052 an incompatible interface change.
2053
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020542002-10-28 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi6bf8b682002-10-28 08:49:39 +00002055
2056 * Portablility fix (bug reported by C. Chris Erway)
2057
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020582002-10-25 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredid6e9f882002-10-25 11:40:14 +00002059
2060 * Use Mark Glines' fd passing method for default operation instead
2061 of old reexec
2062
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020632002-10-22 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi60c23522002-10-24 09:19:43 +00002064
Miklos Szeredi5e5d61f2002-10-24 11:50:33 +00002065 * fix "Stale NFS file handle" bug caused by changes in 2.4.19
2066
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020672002-10-22 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi5e5d61f2002-10-24 11:50:33 +00002068
Miklos Szeredi60c23522002-10-24 09:19:43 +00002069 * fix incompatiblity with Red Hat kernels, with help from Nathan
2070 Thompson-Amato.
2071
Mark Glines65ba2192002-04-18 14:41:48 +000020722002-04-18 Mark Glines <mark@glines.org>
2073
2074 * added an alternative to fuse_mount(), called
2075 fuse_mount_ioslave(), which does not need to reexec the
2076 FUSE program.
2077 * added a small helper util needed by fuse_mount_ioslave().
2078
Mark Glines220635a2002-03-17 07:01:14 +000020792002-03-16 Mark Glines <mark@glines.org>
2080
2081 * use struct fuse_statfs everywhere possible to avoid problems
2082 with the headerfiles changing struct statfs member sizes
2083
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020842002-03-01 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi081f3c22002-03-01 07:47:35 +00002085
2086 * Another RPM spec file for RedHat >= 7 by Ian Pilcher
2087
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020882002-01-14 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredif782fc42002-01-14 08:48:46 +00002089
2090 * RPM support by Achim Settelmeier
2091
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020922002-01-09 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi4b2bef42002-01-09 12:23:27 +00002093
Miklos Szerediddc862a2002-01-09 13:46:10 +00002094 * Version 0.95 released
Miklos Szeredie5183742005-02-02 11:14:04 +00002095
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020962002-01-09 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szerediddc862a2002-01-09 13:46:10 +00002097
Miklos Szeredi4b2bef42002-01-09 12:23:27 +00002098 * Revaidate all path components not just the last, this means a
2099 very small performance penalty for being more up-to-date.
2100
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021012002-01-08 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi4b2bef42002-01-09 12:23:27 +00002102
2103 * Update and fix python interface
2104
Mark Glinesd84b39a2002-01-07 16:32:02 +000021052002-01-07 Mark Glines <mark@glines.org>
Miklos Szeredie5183742005-02-02 11:14:04 +00002106
Mark Glinesd84b39a2002-01-07 16:32:02 +00002107 * Added statfs() support to kernel, lib, examples, and perl!
2108
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021092001-12-26 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi46a46dc2002-01-08 09:55:14 +00002110
2111 * Better cross compilation support
2112
2113 * Ported to Compaq IPAQ
2114
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021152001-12-20 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie5183742005-02-02 11:14:04 +00002116
Miklos Szeredife25def2001-12-20 15:38:05 +00002117 * Added function fuse_get_context() to library API (inspired by
Miklos Szeredie5183742005-02-02 11:14:04 +00002118 patch from Matt Ryan)
2119
Miklos Szeredife25def2001-12-20 15:38:05 +00002120 * Added flags to fusermount and to kernel interface to control
2121 permission checking
Miklos Szeredi8cffdb92001-11-09 14:49:18 +00002122
Miklos Szeredife25def2001-12-20 15:38:05 +00002123 * Integrated fuse_set_operations() into fuse_new()
2124
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021252001-12-08 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredife25def2001-12-20 15:38:05 +00002126
2127 * Applied header protection + extern "C" patch by Roland
2128 Bauerschmidt
2129
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021302001-12-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredife25def2001-12-20 15:38:05 +00002131
Miklos Szeredie5183742005-02-02 11:14:04 +00002132 * Added perl bindings by Mark Glines
Miklos Szeredife25def2001-12-20 15:38:05 +00002133
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021342001-11-21 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredife25def2001-12-20 15:38:05 +00002135
2136 * Cleaned up way of mounting simple filesystems.
2137
2138 * fuse_main() helper function added
2139
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021402001-11-18 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie5183742005-02-02 11:14:04 +00002141
Miklos Szeredife25def2001-12-20 15:38:05 +00002142 * Optimized read/write operations, so that minimal copying of data
2143 is done
2144
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021452001-11-14 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredife25def2001-12-20 15:38:05 +00002146
2147 * Python bindings by Jeff Epler added
Miklos Szeredi838c14f2001-11-14 08:16:20 +00002148
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021492001-11-13 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi838c14f2001-11-14 08:16:20 +00002150
2151 * Fixed vfsmount reference leak in fuse_follow_link
2152
2153 * FS blocksize is set to PAGE_CACHE_SIZE, blksize attribute from
2154 userspace is ignored
2155
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021562001-11-09 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi838c14f2001-11-14 08:16:20 +00002157
Miklos Szeredife25def2001-12-20 15:38:05 +00002158 * Started ChangeLog