blob: a549ab2833c40b20eba44b3704e44c36a0e1e14c [file] [log] [blame]
Miklos Szeredi63d3c402006-08-18 16:38:08 +000012006-08-18 Miklos Szeredi <miklos@szeredi.hu>
2
3 * kernel: fix page leak if fuse_readpages() failed in it's
4 initialization. Bug found and original patch from Alexander
5 Zarochentsev
6
Miklos Szeredi3ded1a32006-08-18 18:43:50 +00007 * For linux kernels >=2.6.18 (2.6.19 if using the fuse module from
8 the kernel tree) the statfs method will receive the path within
9 the filesystem on which the stat(v)fs syscall was called.
10
Miklos Szeredi543087d2006-08-18 19:26:23 +000011 * fusermount: try to modprobe fuse module if invoked by root and
12 unable to open device. This is needed with udev, since the device
13 node will be created only when the module is inserted, hence
14 module autoloading won't work. Reported by Szakacsits Szabolcs
15
Miklos Szeredi9a5c11d2006-07-30 17:33:40 +0000162006-07-30 Miklos Szeredi <miklos@szeredi.hu>
17
18 * fusermount: if selinux is active, restore the original file's
19 security context in unmount_rename(). Redhat bugzilla id 188561.
20 Patch from Yves Perrenoud
21
22 * Add POSIX file locking operation to high level library
23
Miklos Szerediad519562006-07-31 11:07:40 +000024 * Initialize context for unlink of hidden files on umount. Bug
25 reported by Tim Stoakes
26
Miklos Szeredi9a5c11d2006-07-30 17:33:40 +0000272006-07-14 Miklos Szeredi <miklos@szeredi.hu>
28
29 * Multiple release() calls can race with each other, resulting in
30 the hidden file being deleted before the last release finishes.
31 Bug found and patch tested by Mark Huijgen
32
Miklos Szeredi3b0e4fa2006-07-14 10:13:16 +0000332006-07-05 Miklos Szeredi <miklos@szeredi.hu>
34
Miklos Szeredi9a5c11d2006-07-30 17:33:40 +000035 * fusermount: if /dev/fuse doesn't exist, suggest modprobing fuse;
36 this makes sense on systems using udev. Reported by Szakacsits
37 Szabolcs
Miklos Szeredi3b0e4fa2006-07-14 10:13:16 +000038
Miklos Szeredi91762cd2006-06-29 14:38:35 +0000392006-06-29 Miklos Szeredi <miklos@szeredi.hu>
40
41 * Released 2.6.0-pre3
42
432006-06-29 Miklos Szeredi <miklos@szeredi.hu>
44
45 * Support in kernel module for file locking and interruption. The
46 same functionality is available in official kernels >= 2.6.18
47
Miklos Szeredib052a1a2006-06-28 14:51:20 +0000482006-06-28 Miklos Szeredi <miklos@szeredi.hu>
49
50 * Add POSIX file locking support
51
52 * Add request interruption
53
Miklos Szeredi55a84102006-06-06 10:16:38 +0000542006-06-06 Miklos Szeredi <miklos@szeredi.hu>
55
56 * Add missing pthread_rwlock_destroy(). Patch from Remy Blank
57
Miklos Szeredi9dedb702006-06-06 09:48:30 +0000582006-06-05 Remy Blank <remy.blank@pobox.com>
59
60 * lib: canonicalize mount point in fuse_helper_opt_proc() so that
61 unmounting succeeds even if mount point was relative.
62
Csaba Henkd021ce42006-06-03 23:04:18 +0000632006-06-04 Csaba Henk <csaba.henk@creo.hu>
64
65 * lib: fix emergency umount in helper.c when malloc fails.
66 (The way it was done would end up in a segfault.)
67
Csaba Henk4f5c7b42006-06-01 14:19:17 +0000682006-06-01 Csaba Henk <csaba.henk@creo.hu>
69
70 * lib: adjust threading related compiler flags.
71 Switch to "-pthread" from "-lpthread" as that's the preferred
72 one on several platforms. Consulted with Terrence Cole and
73 Miklos Szeredi
Miklos Szeredi06908f42006-05-16 14:39:47 +000074
Miklos Szeredi9d3b7da2006-05-08 12:35:04 +0000752006-05-08 Miklos Szeredi <miklos@szeredi.hu>
76
77 * lib: search fusermount in installation directory (bindir) as
78 well as in PATH.
79
Miklos Szeredi2512aaa2006-05-03 14:54:59 +0000802006-05-03 Miklos Szeredi <miklos@szeredi.hu>
81
82 * lib: fix compilation if CLOCK_MONOTONIC is not defined.
83 Reported by Christian Magnusson
84
Csaba Henk2efe48f2006-04-22 22:46:52 +0000852006-04-23 Csaba Henk <csaba.henk@creo.hu>
86
87 * lib: make FreeBSD mount routine recognize if kernel features
88 backgrounded init and if it does, run the mount util in foreground
89 (similarly to Linux)
90
Miklos Szeredi5fe07d62006-04-21 14:09:28 +0000912006-04-21 Miklos Szeredi <miklos@szeredi.hu>
92
93 * kernel: fix fput deadlock fix, the lockless solution could lead
94 to "VFS: busy inodes after umount..."
95
96 * kernel: fix race between checking and setting file->private_data
97 for the device. Found by Al Viro
98
992006-04-11 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi7a2814c2006-04-12 10:41:50 +0000100
101 * kernel: remove request pool, instead allocate requests on
102 demand. Account the number of background requests, and if they go
103 over a limit, block the allocation of new requests.
104
105 * kernel: fix deadlock if backgrounded request holds the last
106 reference to the super block
107
108 * kernel: don't use fuse_reset_request() during direct I/O
109
Csaba Henkbaa49d22006-04-06 00:12:44 +00001102006-04-06 Csaba Henk <csaba.henk@creo.hu>
111
112 * lib: Let FreeBSD mount option parsing routine recognize "no"
113 prefixes for FUSE specific options as well
114
Miklos Szeredid0a777a2006-04-05 07:18:00 +00001152006-04-01 Miklos Szeredi <miklos@szeredi.hu>
116
117 * lib: Add missing rwlock initialization. Patch by Ryan Bradetich
118
Miklos Szeredi6f385412006-03-17 15:05:40 +00001192006-03-17 Miklos Szeredi <miklos@szeredi.hu>
120
121 * API changes:
122
123 * fuse_main(), fuse_setup() and fuse_new() have an additionl
124 user_data parameter
125
126 * fuse_mount() returns a 'struct fuse_chan' pointer instead of a
127 file descriptor
128
129 * fuse_unmount() receives a 'struct fuse_chan' pointer. It
130 destroys the given channel
131
132 * fuse_teardown() no longer has a file descriptor parameter
133
134 * new exported functions: fuse_session_remove_chan(),
135 fuse_get_session(), fuse_daemonize()
136
Miklos Szeredi8d975f62006-03-17 15:56:05 +0000137 * fuse_chan_recv() may now return a new channel which will be used
138 to send the reply
139
Miklos Szeredif51e43f2006-03-16 14:19:25 +00001402006-03-16 Miklos Szeredi <miklos@szeredi.hu>
141
Miklos Szeredi9db31dc2006-03-16 14:43:28 +0000142 * Released 2.6.0-pre2
143
1442006-03-16 Miklos Szeredi <miklos@szeredi.hu>
145
Miklos Szeredif51e43f2006-03-16 14:19:25 +0000146 * Don't unmount if already unmounted. This fixes a problem seen
147 in the following situation: Lazy unmount a busy filesystem; Mount
148 a new one in top; When the first finally unmounts, the second also
149 unmounts. Reported by Franco Broi
150
Miklos Szeredi2c1381f2006-03-15 20:34:10 +00001512006-03-15 Miklos Szeredi <miklos@szeredi.hu>
152
153 * lowlevel lib: use indirect function calls instead of a
154 switch/case construct. Besides increased efficiency it helps
155 maintainability & readability too. Patch from Florin Malita
156
Miklos Szeredi67d26d42006-03-13 17:39:56 +00001572006-03-13 Miklos Szeredi <miklos@szeredi.hu>
158
159 * kernel: replace global spinlock with a per-connection spinlock
160
Miklos Szeredi87c77932006-03-10 10:18:20 +00001612006-03-10 Miklos Szeredi <miklos@szeredi.hu>
162
163 * Fix source compatibility breakage for fuse_unmount(). Report
164 from Yura Pakhuchiy
165
Miklos Szeredi9caf0fe2006-03-02 19:55:56 +00001662006-03-02 Miklos Szeredi <miklos@szeredi.hu>
167
168 * Fix O_ASYNC handling in fuse_dev_release(). From Jeff Dike
169
Miklos Szeredi5d9ce362006-03-01 12:10:13 +00001702006-03-01 Miklos Szeredi <miklos@szeredi.hu>
171
172 * Add O_ASYNC and O_NONBLOCK support to FUSE device. Patch by
173 Jeff Dike
174
175 * Renamed fuse_chan_receive() to fuse_chan_recv() and changed
176 interface to return -errno in case of error.
177
Csaba Henkee588c02006-03-01 09:40:35 +00001782006-03-01 Csaba Henk <csaba.henk@creo.hu>
179
180 * libfuse: pass device file descriptor to fuse_unmount(), rewrite
181 FreeBSD implementation so that it uses libc (sysctl backed) instead
182 of an embdedded script (kmem backed). Adjust the control flow of
183 hello_ll so that device doesn't get closed before unmount attempt.
184
Miklos Szerediaa8258e2006-02-25 14:42:03 +00001852006-02-25 Miklos Szeredi <miklos@szeredi.hu>
186
187 * Lowlevel lib: return all-zero statvfs data if filesystem doesn't
188 implement method. This is needed on FreeBSD, and nicer on Linux
189 too. Highlevel lib already did this. Reported by Csaba Henk
190
191 * Fix negative entry handling. There was a bug, that negative
192 lookups with timeouts (nodeid == 0) returned -EIO.
193
1942006-02-23 Miklos Szeredi <miklos@szeredi.hu>
195
196 * Fix race between RELEASE and UNLINK, which might leave
197 .fuse_hidden* files around
198
Miklos Szeredi6bab4802006-02-21 18:31:29 +00001992006-02-21 Miklos Szeredi <miklos@szeredi.hu>
200
201 * fusexmp_fh: implement flush() method and call close() on the
202 open file descriptor. This is needed if used on an NFS
203 filesystem, which buffers data until file is closed. Franco Broi
204 spotted the situation when 'cp -p' failed to set the modification
205 time because of this.
206
Miklos Szeredie109e282006-02-20 11:06:20 +00002072006-02-20 Miklos Szeredi <miklos@szeredi.hu>
208
209 * Released 2.6.0-pre1
210
Miklos Szeredib67f2162006-02-20 10:55:33 +00002112006-02-19 Miklos Szeredi <miklos@szeredi.hu>
212
213 * libfuse: fix use-after-free bug in interruptred reply_entry().
214 Patch from John Muir
215
216 * libfuse: fix wrong symbol versioning for fuse_mount. Debian bug
217 ID: 352631. Found by Stéphane Rosi
218
Miklos Szeredi1bf64f42006-02-17 15:49:25 +00002192006-02-17 Miklos Szeredi <miklos@szeredi.hu>
220
221 * Lowlevel lib: Unify fuse_dirent_size() and fuse_add_dirent()
222 into a single function fuse_add_direntry(). This cleans up the
223 interface and makes it possible to do stacking.
224
Miklos Szeredi99ac9c02006-02-16 10:08:32 +00002252006-02-16 Miklos Szeredi <miklos@szeredi.hu>
226
227 * Fix rare race betweeen abort and release caused by failed iget()
228 in fuse_create_open().
229
Miklos Szeredi6e806e92006-02-16 16:59:39 +0000230 * Add 'ac_attr_timeout' option e.g. for filesystems which do their
231 own attribute caching.
232
Miklos Szeredid65cdfe2006-02-15 14:25:17 +00002332006-02-15 Miklos Szeredi <miklos@szeredi.hu>
234
235 * Work around FreeBSD runtime linker "feature" which binds an old
236 version of a symbol to internal references if the symbol has more
237 than one version. This resulted in infinite recursion in
238 fuse_lowlevel_new_compat25().
239
Csaba Henkdcce3e52006-02-10 06:22:15 +00002402006-02-10 Csaba Henk <csaba.henk@creo.hu>
241
242 * Refine clock_gettime() querying so that linker options
243 shall be set as it's appropriate for the target platform.
244
Miklos Szeredi390ae312006-02-10 16:44:34 +00002452006-02-09 Miklos Szeredi <miklos@szeredi.hu>
246
247 * Fix udev rule syntax. Reported by Nix
248
Miklos Szeredieb643582006-02-08 10:54:02 +00002492006-02-08 Miklos Szeredi <miklos@szeredi.hu>
250
251 * In some cases udev rule seems to be ineffective when installed
252 as 40-fuse.rules but work as 60-fuse.rules. Reported by John Hunt
253
Miklos Szeredi357529c2006-02-03 09:20:31 +00002542006-02-03 Miklos Szeredi <miklos@szeredi.hu>
255
256 * Fix compilation when build directory is different from source
257 directory. Reported by Frédéric L. W. Meunier
258
Miklos Szeredice28c7e2006-02-02 14:59:05 +00002592006-02-02 Miklos Szeredi <miklos@szeredi.hu>
260
261 * Fix even bigger bug introduced in fix for request_end() on
262 2006-01-14. Reported by Gal Rosen
263
Miklos Szeredi320abe42006-01-30 18:14:51 +00002642006-01-30 Miklos Szeredi <miklos@szeredi.hu>
265
266 * highlevel-lib: add 'auto_cache' option. This caches file data
267 based on modification time and size
268
Miklos Szeredi065f2222006-01-20 15:15:21 +00002692006-01-20 Miklos Szeredi <miklos@szeredi.hu>
270
Miklos Szeredid66b7282006-02-02 15:15:21 +0000271 * Sanitize storage type and help message in mount_bsd.c. Patch
272 from Csaba Henk
273
Miklos Szeredi065f2222006-01-20 15:15:21 +0000274 * fuse_opt: add new helper constants FUSE_OPT_KEY_KEEP and
275 FUSE_OPT_KEY_DISCARD
276
277 * Add options 'max_readahead', 'sync_read' and 'async_read'
278
279 * Kernel ABI version 7.6:
280
281 * Negotiate the 'max_readahead' value and 'async_read' flags with
282 userspace in the INIT method
283
284 * Add connection info to ->init() methods to both lowlevel and
285 highlevel API
286
287 * Fall back to synchronous read() behavior if either library or
288 userspace filesystem is using the old interface version. This is
289 needed so non-updated filesystems won't be confused by the
290 different read() behavior
291
2922006-01-19 Miklos Szeredi <miklos@szeredi.hu>
293
294 * lib: if "fsname=" option was given, pass it to fusermount
295
296 * fuse_opt: add new fuse_opt_insert_arg() function, which is
297 needed by filesystems to implement some argument manipulations
298 correctly
299
300 * fuse_opt: fix memory leak in handling "--" option
301
3022006-01-18 Miklos Szeredi <miklos@szeredi.hu>
303
304 * kernel: fix detection of case when fuse is not configured into
305 the kernel either as module or built-in
306
307 * fuse_opt.h: fix incompatibility with C++ compilers by renaming
308 'template' structure member to 'templ'. Reported by Takashi Iwai
309
310 * fuse.h: fix compatibility bugs. Patch by Yura Pakhuchiy
311
312 * kernel: support version 2.6.16 (i_sem -> i_mutex)
313
Miklos Szeredi15af1b82006-01-16 17:52:24 +00003142006-01-16 Miklos Szeredi <miklos@szeredi.hu>
315
316 * Added (again) asynchronous readpages support
317
318 * Each connection now shows up under /sys/fs/fuse/connections
319
320 * Connection attributes exported to sysfs: 'waiting' number of
321 waiting requests; 'abort' abort the connection
322
323 * Connection may be aborted through either the sysfs interface or
324 with 'umount -f mountpoint'
325
Miklos Szeredi9db5faa2006-01-14 14:47:21 +00003262006-01-14 Miklos Szeredi <miklos@szeredi.hu>
327
Miklos Szeredi75bb0de2006-01-14 18:38:54 +0000328 * Released 2.5.0
329
3302006-01-14 Miklos Szeredi <miklos@szeredi.hu>
331
Miklos Szeredi9db5faa2006-01-14 14:47:21 +0000332 * kernel: fix a couple of bugs
333
Miklos Szeredi68183ca2006-01-27 11:16:11 +0000334 * Order of request_end() and fuse_copy_finish() was wrong.
Miklos Szeredie0451092006-01-27 11:19:51 +0000335 Posthumous note: Franco Broi managed to exploit this, though it
Miklos Szeredi68183ca2006-01-27 11:16:11 +0000336 seemed quite impossible
Miklos Szeredi9db5faa2006-01-14 14:47:21 +0000337
338 * request_end() used request pointer after decrementing refcount
339
340 * Clearing ->connected or ->mounted connection flags could race
341 with setting other bitfields not protected with a lock
Miklos Szeredi15af1b82006-01-16 17:52:24 +0000342
Miklos Szeredia9820342006-01-10 10:54:11 +00003432006-01-10 Miklos Szeredi <miklos@szeredi.hu>
344
345 * kernel: add necessary compile flags for 2.4.X/x86_64.
346 Report from Sean Ziegeler
347
Miklos Szeredi35676b02006-01-09 10:13:28 +00003482006-01-09 Miklos Szeredi <miklos@szeredi.hu>
349
Miklos Szeredie07b1a22006-01-09 14:46:10 +0000350 * Released 2.5.0-pre2
351
3522006-01-09 Miklos Szeredi <miklos@szeredi.hu>
353
Miklos Szeredi35676b02006-01-09 10:13:28 +0000354 * Applied patch from Csaba Henk, to update mount_bsd to new
355 fuse_mount() semantics
356
Miklos Szeredib32c79b2006-01-09 11:14:29 +0000357 * Ignore auto,noauto,... options in mount.fuse. Reported by Frank
358 Steiner and Don Taber
359
Miklos Szeredicb075c82006-01-09 11:33:04 +0000360 * fusermount: add 'dirsync' mount option
361
Miklos Szerediad005972006-01-07 10:14:34 +00003622006-01-07 Miklos Szeredi <miklos@szeredi.hu>
363
364 * Improved help reporting and added version reporting to library
365
Miklos Szeredi0af762a2006-01-06 09:47:54 +00003662006-01-06 Miklos Szeredi <miklos@szeredi.hu>
367
368 * Change working directory to "/" even if running in the
369 foreground. Patch from Jonathan Brandmeyer
370
Miklos Szeredi95da8602006-01-06 18:29:40 +0000371 * Changed lots of functions to use 'struct fuse_args' instead of
372 separate argc and argv
373
374 * Added fuse_parse_cmdline(), fuse_set_signal_handlers() and
375 fuse_remove_signal_handlers() functions, so that it's now pretty
376 easy to get all the functionality of fuse_main() with a filesystem
377 using the lowlevel API.
378
Miklos Szeredib8638182006-01-02 12:52:24 +00003792006-01-02 Miklos Szeredi <miklos@szeredi.hu>
380
Miklos Szeredif1941472006-01-02 16:27:48 +0000381 * mount.fuse: the 'user' option should be ignored. Report and
382 solution from Mattd.
383
384 * mount.fuse: export PATH in the right place. Report and patch
385 from Hannes Schweizer
Miklos Szeredib8638182006-01-02 12:52:24 +0000386
Miklos Szeredi73f41392005-12-16 11:12:16 +00003872005-12-16 Miklos Szeredi <miklos@szeredi.hu>
388
389 * Clean up the option parsing interface slightly, by creating an
390 "argument list" structure, that contains the argument vector and
391 count
392
Miklos Szeredi4e829092005-12-15 16:13:49 +00003932005-12-15 Miklos Szeredi <miklos@szeredi.hu>
394
395 * fusermount: check if /mnt/mtab is a symlink and don't modify it
396 in that case
397
Miklos Szeredi154ffe22005-12-15 16:41:20 +0000398 * kernel: simplify request size limiting. INIT only contains
399 maximum write size, maximum path component size remains fixed at
400 1024 bytes, and maximum xattr size depends on read buffer.
401
Miklos Szeredie248e4b2005-12-14 16:18:32 +00004022005-12-14 Miklos Szeredi <miklos@szeredi.hu>
403
404 * Fix readdir() failure on x86_64, of 32bit programs compiled
405 without largefile support. Bug report and help from Anthony
406 Kolasny
407
Miklos Szeredi64709572005-12-14 22:16:28 +0000408 * If lookup returns invalid mode, return -EIO instead of creating
Miklos Szeredicaa09312005-12-14 23:25:00 +0000409 a regular file
410
411 * Add current output argument vector to option processing
412 function
Miklos Szeredi64709572005-12-14 22:16:28 +0000413
Miklos Szeredi76fc3de2005-12-12 09:34:45 +00004142005-12-12 Miklos Szeredi <miklos@szeredi.hu>
415
416 * Fix stale code in ifdef FreeBSD. Patch from Csaba Henk
417
Miklos Szeredi659743b2005-12-09 17:41:42 +00004182005-12-09 Miklos Szeredi <miklos@szeredi.hu>
419
Miklos Szeredi3b534a42005-12-09 20:09:42 +0000420 * Released 2.5.0-pre1
421
4222005-12-09 Miklos Szeredi <miklos@szeredi.hu>
423
Miklos Szeredi659743b2005-12-09 17:41:42 +0000424 * libfuse: added option parsing interface, defined in
425 <fuse_opt.h>.
426
Miklos Szeredic53cddd2005-12-07 12:57:59 +00004272005-12-07 Miklos Szeredi <miklos@szeredi.hu>
428
429 * Return EIO for file operations (read, write, fsync, flush) on
430 open files whose inode has become "bad". Inodes will be marked
431 "bad" if their type changes. Bug report by Csaba Henk
432
Miklos Szeredi044da2e2005-12-06 17:59:55 +00004332005-12-06 Miklos Szeredi <miklos@szeredi.hu>
434
435 * Use bigger request buffer size. write() did not work on archs
436 with > 4k page size, Bug report by Mark Haney
437
438 * ABI version 7.5:
439
440 * Extend INIT reply with data size limits
441
Miklos Szeredifa829b52005-12-02 11:05:41 +00004422005-12-02 Miklos Szeredi <miklos@szeredi.hu>
443
444 * Fix memory leak in fuse_read_cmd()/fuse_process_cmd(). Bug
445 reported by Vincenzo Ciancia
446
447 * Handle exit-by-umount in fuse_read_cmd()
448
Miklos Szeredi3cc8a262005-11-29 11:04:27 +00004492005-11-29 Miklos Szeredi <miklos@szeredi.hu>
450
451 * Check if '-msoft-float' option is supported by compiler when
452 configuring for a 2.4.x kernel. Bug report by Mark Haney
453
Miklos Szeredi40d7b382005-11-29 20:07:23 +0000454 * In multithreaded loop send a TERM signal to the main thread if
455 one of the other threads exit. Needed on FreeBSD for a clean exit
456 on umount. Should not cause any harm on Linux either
457
Miklos Szerediead7f102005-11-28 16:02:27 +00004582005-11-28 Miklos Szeredi <miklos@szeredi.hu>
459
460 * Fix bug in 32-bit file handle compatibility
461
Miklos Szeredia90b7342005-11-27 19:22:42 +00004622005-11-27 Miklos Szeredi <miklos@szeredi.hu>
463
464 * Block TERM, INT, HUP and QUIT signals in all but the main
465 thread. According to POSIX it's not specified which thread will
466 receive these signals.
Miklos Szeredi2b478112005-11-28 13:27:10 +0000467
468 * Kernel changes:
469
470 * Check for directory aliasing on mkdir, not just on lookup
471
472 * Check for special node ID values in create+open operation
473
474 * Sync with -mm: readv, writev, aio_read and aio_write methods
475 added to file operations
476
477 * Cleanups: lookup code, page offset calculation
478
479 * ABI stepped to 7.4, changes:
480
481 * frsize member added to fuse_kstatfs structure
482
483 * added support for negative entry caching: on lowlevel API if
484 fuse_entry_param::ino is set to zero in reply to a lookup request,
485 the kernel will cache the dentry for the specified amount of time.
486
487 * libfuse: added 'negative_timeout' option: specifies how much
488 negative entries should be cached. Default is zero, to be
Miklos Szerediead7f102005-11-28 16:02:27 +0000489 compatible with prior versions
Miklos Szeredi2b478112005-11-28 13:27:10 +0000490
Miklos Szeredibac4c772005-11-23 13:35:54 +00004912005-11-22 Miklos Szeredi <miklos@szeredi.hu>
492
493 * Add detection of mainline FUSE code in running kernel
494
Miklos Szeredi8393e3d2005-11-21 11:37:01 +00004952005-11-21 Miklos Szeredi <miklos@szeredi.hu>
496
497 * Don't use async cancelation in multithreaded loop. This makes
498 it more portable to systems where read() is not async cancel safe.
499 Report from Andriy Gapon
500
Miklos Szeredi05c97842005-11-20 17:05:07 +00005012005-11-20 Miklos Szeredi <miklos@szeredi.hu>
502
503 * Warn if API version 11 compatibility is requested
504
Miklos Szeredi9c2ccb42005-11-17 17:11:48 +00005052005-11-17 Miklos Szeredi <miklos@szeredi.hu>
506
507 * More FreeBSD merge
508
Miklos Szeredi832ee442005-11-18 21:02:36 +0000509 * fusermount: don't allow mountpoints with '\n', '\t', or '\\' in
510 them, because it corrupts /etc/mtab. Found by Thomas Biege
Miklos Szeredibac4c772005-11-23 13:35:54 +0000511 CVE-2005-3531
Miklos Szeredi832ee442005-11-18 21:02:36 +0000512
513 * libfuse: don't use system() to invoke 'fusermount -u ...'
514 because it breaks mountpoints with spaces in them into multiple
515 arguments
516
Miklos Szeredib3f99722005-11-16 13:00:24 +00005172005-11-16 Miklos Szeredi <miklos@szeredi.hu>
518
519 * Merge library part of FreeBSD port. Patch by Csaba Henk
520
Miklos Szeredi3a770472005-11-11 21:32:42 +00005212005-11-11 Miklos Szeredi <miklos@szeredi.hu>
522
523 * Use 64bit type for file handle, so the full range supported by
524 the kernel interface is available to applications
525
Miklos Szeredibcc53852005-11-10 09:54:41 +00005262005-11-10 Miklos Szeredi <miklos@szeredi.hu>
527
528 * Moved mountpoint argument checking from fuse_parse_cmdline() to
529 fuse_mount() in preparation to FreeBSD merge.
530
Miklos Szeredi4ec06812005-11-08 13:04:27 +00005312005-11-08 Miklos Szeredi <miklos@szeredi.hu>
532
533 * Remove unneeded close() from fuse_teardown(). Spotted by Csaba
534 Henk.
535
Miklos Szeredic706ad92005-11-07 15:30:48 +00005362005-11-07 Miklos Szeredi <miklos@szeredi.hu>
537
538 * Make the statfs change backwards compatible.
539
Miklos Szeredi52cb09d2005-11-07 11:59:00 +00005402005-11-06 Miklos Szeredi <miklos@szeredi.hu>
541
542 * Change ->statfs() method to use 'struct statvfs' instead of
543 'struct statfs'. This makes the API more portable since statvfs()
544 is defined by POSIX.
545
Miklos Szeredif7eec032005-10-28 13:09:50 +00005462005-10-28 Miklos Szeredi <miklos@szeredi.hu>
547
548 * Add fgetattr() method, which currently will only be called after
549 a successful call to a create() method.
550
Miklos Szeredib0b13d12005-10-26 12:53:25 +00005512005-10-26 Miklos Szeredi <miklos@szeredi.hu>
552
Miklos Szeredi11509ce2005-10-26 16:04:04 +0000553 * Change kernel ABI version to 7.3
554
Miklos Szeredib0b13d12005-10-26 12:53:25 +0000555 * Add ACCESS operation. This is called from the access() system
Miklos Szeredid9079a72005-10-26 15:29:06 +0000556 call if 'default_permissions' mount option is not given, and is
557 not called on kernels 2.4.*
Miklos Szeredib0b13d12005-10-26 12:53:25 +0000558
Miklos Szeredid9079a72005-10-26 15:29:06 +0000559 * Add atomic CREATE+OPEN operation. This will only work with
560 2.6.15 (presumably) or later Linux kernels.
561
Miklos Szeredi11509ce2005-10-26 16:04:04 +0000562 * Add ftruncate() method. This will only work with 2.6.15
563 (presumably) or later Linux kernels.
564
565 * Fix kernel module compile if kernel source and build directories
566 differ. Report and initial patch by John Eastman
567
Miklos Szeredic4c12ae2005-10-20 14:48:50 +00005682005-10-18 Miklos Szeredi <miklos@szeredi.hu>
569
570 * lib: optimize buffer reallocation in fill_dir.
571
Miklos Szeredic9daeb12005-10-17 10:19:21 +00005722005-10-17 Miklos Szeredi <miklos@szeredi.hu>
573
574 * Released 2.4.1
575
Miklos Szeredif412d072005-10-14 21:24:32 +00005762005-10-14 Miklos Szeredi <miklos@szeredi.hu>
577
Miklos Szeredi062f0e52005-10-14 21:28:21 +0000578 * libfuse: add debug for write result (by Shaun Jackman) and
579 warnings for too large read/write result
Miklos Szeredif412d072005-10-14 21:24:32 +0000580
Miklos Szeredib75d4b92005-10-11 10:12:08 +00005812005-10-11 Miklos Szeredi <miklos@szeredi.hu>
582
583 * Spelling fixes, thanks to Ioannis Barkas
584
Miklos Szeredibaab5872005-10-10 08:41:14 +00005852005-10-10 Miklos Szeredi <miklos@szeredi.hu>
586
587 * fuse_common.h: use extern "C". Thanks to Valient Gough for the
588 patch
589
Miklos Szeredi4f5df5e2005-10-07 12:39:58 +00005902005-10-07 Miklos Szeredi <miklos@szeredi.hu>
591
592 * highlevel-lib: init() and destroy() methods didn't have an
593 initialized fuse_context. Bug reported by Tim Stoakes
594
Miklos Szeredif2491122005-10-04 10:10:41 +00005952005-10-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi83f253e2005-10-04 05:56:01 +0000596
597 * Released 2.4.0
598
Miklos Szeredi836ab712005-10-03 14:11:59 +00005992005-10-03 Miklos Szeredi <miklos@szeredi.hu>
600
601 * Add documentation to fuse_lowlevel.h
602
603 * API cleanups:
604
605 * Remove definitions of unused FATTR_CTIME / FUSE_SET_ATTR_CTIME
606
607 * Move fuse_mount() and fuse_unmount() to fuse_common.h
608
609 * Change the return type of fuse_reply_none() from int to void.
610
Miklos Szerediaf138742005-09-30 08:49:59 +00006112005-09-30 Miklos Szeredi <miklos@szeredi.hu>
612
613 * kernel: NFS exporting leaked dentries. Bug found and fixed by
614 Akshat Aranya.
615
Miklos Szeredidb016e02005-09-29 10:06:27 +00006162005-09-29 Miklos Szeredi <miklos@szeredi.hu>
617
618 * fusermount: fix error message, when unable to open /dev/fuse.
619 Report by Balázs Pozsár
620
Miklos Szeredi35200932005-09-28 14:50:49 +00006212005-09-28 Miklos Szeredi <miklos@szeredi.hu>
622
623 * UClibc fixes from Christian Magnusson
624
Miklos Szeredi8eddf642005-09-27 08:58:26 +00006252005-09-27 Miklos Szeredi <miklos@szeredi.hu>
626
627 * Added NAME="%k" to util/udev.rules. Fix by Mattias Wadman.
628
Miklos Szerediedec95c2005-09-26 10:22:22 +00006292005-09-26 Miklos Szeredi <miklos@szeredi.hu>
630
Miklos Szeredi39851ac2005-09-26 11:17:50 +0000631 * Released 2.4.0-rc1
632
6332005-09-26 Miklos Szeredi <miklos@szeredi.hu>
634
Miklos Szerediedec95c2005-09-26 10:22:22 +0000635 * fusermount: allow user umount in the case when /etc/mtab is a
636 symlink to /proc/mounts. Reported by Balázs Pozsár.
637
Miklos Szeredi6becf0b2005-09-23 11:25:28 +00006382005-09-23 Miklos Szeredi <miklos@szeredi.hu>
639
Miklos Szeredi8722dd22005-09-23 13:34:44 +0000640 * Check for special node ID values in lookup and creation
Miklos Szeredi6becf0b2005-09-23 11:25:28 +0000641
Miklos Szeredif45f3c12005-09-22 15:14:27 +00006422005-09-22 Miklos Szeredi <miklos@szeredi.hu>
643
644 * Slight optimization in returning EINVAL error in case of an open
645 with O_DIRECT flag.
646
Miklos Szeredi670d07a2005-09-20 11:36:32 +00006472005-09-20 Miklos Szeredi <miklos@szeredi.hu>
648
649 * Remove '--enable-auto-modprobe' configure flag. Module
650 auto-loading is now handled by the kernel.
651
Miklos Szeredid51fca12005-09-15 12:51:00 +00006522005-09-15 Miklos Szeredi <miklos@szeredi.hu>
653
654 * Install UDEV rule file, so /dev/fuse is created with mode 0666.
655 Help from Jens M. Noedler.
656
Miklos Szeredi7e7530d2005-09-14 15:20:26 +00006572005-09-14 Miklos Szeredi <miklos@szeredi.hu>
658
659 * Add memory cleanup on thread exit
660
Miklos Szeredid7ea8cf2005-09-13 12:53:58 +00006612005-09-13 Miklos Szeredi <miklos@szeredi.hu>
662
663 * Set umask to zero in fusexmp and fusexmp_fh, so that
664 files/directories are created with the requested mode.
665
Miklos Szeredi0d41f2f2005-09-12 16:40:26 +00006662005-09-12 Miklos Szeredi <miklos@szeredi.hu>
667
668 * Don't ignore read error in multithreaded loop
669
Miklos Szeredifcf9f8d2005-09-08 14:28:54 +00006702005-09-08 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi56487812005-09-02 13:05:06 +0000671
Miklos Szeredi2277ecc2005-09-08 15:34:44 +0000672 * Released 2.4.0-pre2
673
6742005-09-08 Miklos Szeredi <miklos@szeredi.hu>
675
Miklos Szeredifcf9f8d2005-09-08 14:28:54 +0000676 * Revert lock and access operations. Postpone these until 2.5.
677
6782005-09-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi56487812005-09-02 13:05:06 +0000679
680 * Fix compile warning on 2.6.13 and later
681
Miklos Szeredi3b9e53f2005-09-02 16:04:48 +0000682 * Fix compilation on old kernels
Miklos Szeredi0716de02005-09-02 14:56:09 +0000683
Miklos Szeredi77ccf652005-08-19 14:40:27 +00006842005-08-19 Miklos Szeredi <miklos@szeredi.hu>
685
686 * lib: always refresh directory contents after rewinddir() to
687 conform to SUS. Bug found by John Muir.
688
Miklos Szeredia1482422005-08-14 23:00:27 +00006892005-08-15 Miklos Szeredi <miklos@szeredi.hu>
690
Miklos Szeredic43f9412005-08-15 15:10:48 +0000691 * Released 2.4.0-pre1
692
6932005-08-14 Miklos Szeredi <miklos@szeredi.hu>
694
Miklos Szeredia1482422005-08-14 23:00:27 +0000695 * lib: cleaned up (or messed up, depending on your POV) the low
696 level library API. Hopefully this is close to the final form.
697
Miklos Szeredicc1b97c2005-08-05 10:35:26 +00006982005-08-05 Miklos Szeredi <miklos@szeredi.hu>
699
700 * fusermount: don't allow empty mountpoint argument, which defeats
701 automatic umounting in fuse_main(). Bugreport by Václav Jůza
702
Miklos Szeredif6e0ec62005-08-03 09:11:06 +00007032005-08-03 Miklos Szeredi <miklos@szeredi.hu>
704
705 * fix warnings in fuse.h and fuse_lowlevel.h if -Wshadow compiler
706 option is used (Paul Alfille).
707
Miklos Szeredi6c0209a2005-08-02 13:31:28 +00007082005-08-02 Miklos Szeredi <miklos@szeredi.hu>
709
710 * highlevel-lib: added mount options "attr_timeout" and
711 "entry_timeout". These options control the length of time file
712 attributes and entries (names) are cached. Both default to 1.0
713 second.
Miklos Szeredif6e0ec62005-08-03 09:11:06 +0000714
715 * kernel: correctly handle zero timeout for attributes and entries
716
Miklos Szeredi56a61f02005-08-01 10:42:25 +00007172005-08-01 Miklos Szeredi <miklos@szeredi.hu>
718
719 * Added missing symbols to versionscript (Joshua J. Berry)
720
Miklos Szeredie77cc072005-08-01 11:58:51 +0000721 * kernel: implement two flags, open can set: 'direct_io' and
722 'keep_cache'. These correspond exactly to mount options
723 'direct_io' and 'kernel_cache', but allow a per-open setting.
724
725 * Move 'direct_io' and 'kernel_cache' mount option handling to
726 userspace. For both mount options, if the option is given, then
727 the respective open flag is set, otherwise the open flag is left
728 unmodified (so the filesystem can set it).
Miklos Szeredi7b28eae2005-08-01 12:48:30 +0000729
Miklos Szeredi31066bb2005-08-01 14:49:31 +0000730 * lib (highlevel): make open method optional
Miklos Szeredif6e0ec62005-08-03 09:11:06 +0000731
Miklos Szeredi2aaf24a2005-07-28 11:59:41 +00007322005-07-28 Miklos Szeredi <miklos@szeredi.hu>
733
734 * kernel: invalidate attributes for read/readdir/readlink
735 operations
736
737 * kernel: detect newer UML kernels
738
Miklos Szeredibfb99462005-07-26 11:07:55 +00007392005-07-26 Miklos Szeredi <miklos@szeredi.hu>
740
741 * Make the installation path of fuse.ko and mount.fuse
742 configurable through INSTALL_MOD_PATH and MOUNT_FUSE_PATH
743 environment variables. Requirement and help from Csaba Henk.
744
Miklos Szeredi8d4d1b82005-07-22 11:58:47 +00007452005-07-22 Miklos Szeredi <miklos@szeredi.hu>
746
747 * Fix bug, that causes filesystem requests to hang when unique
748 request counter becomes negative. This happens after
749 2,147,483,648 operations, so most people won't care. Thanks to
750 Franco Broi for the report and testing.
751
Miklos Szeredi9b813af2005-07-21 07:59:37 +00007522005-07-21 Miklos Szeredi <miklos@szeredi.hu>
753
754 * Don't change mtime/ctime/atime to local time on read/write.
755 Bug reported by Ben Grimm
756
757 * Install fuse_common.h and fuse_lowlevel.h. Report by Christian
758 Magnusson
759
760 * fusermount: use getopt_long() for option parsing. It allows the
761 use of '--' to stop argument scanning, so fusermount can now
762 operate on directories whose names begin with a '-'. Patch by
763 Adam Connell
764
Miklos Szeredibd10a7b2005-07-15 09:59:59 +00007652005-07-15 Miklos Szeredi <miklos@szeredi.hu>
766
767 * fusermount: add '-v', '--version' and '--help' options
768
769 * add inode based API
770
Miklos Szeredi2482fdb2005-07-12 13:23:53 +00007712005-07-12 Miklos Szeredi <miklos@szeredi.hu>
772
773 * lib: don't block signals in worker threads. Problem noticed by
774 Usarin Heininga
775
Miklos Szeredic902a852005-07-07 12:35:37 +00007762005-07-07 Miklos Szeredi <miklos@szeredi.hu>
777
778 * lib: don't allow both 'allow_other' and 'allow_root' options to
779 be given
780
Miklos Szeredi437d8112005-07-06 09:14:20 +00007812005-07-06 Miklos Szeredi <miklos@szeredi.hu>
782
783 * fusermount: check if mountpoint is empty (only '.' and '..' for
784 directories, and size = 0 for regular files). If "nonempty"
785 option is given, omit this check. This is useful, so users don't
786 accidentally hide data (e.g. from backup programs). Thanks to
787 Frank van Maarseveen for pointing this out.
788
789 * kernel: check if mandatory mount options ('fd', 'rootmode',
790 'user_id', 'group_id') are all given
791
Miklos Szeredi340d21f2005-07-06 10:07:52 +0000792 * lib: simplify 'readdir_ino' handling
793
Miklos Szeredie331c4b2005-07-06 13:34:02 +0000794 * lib: add mount options 'umask=M', 'uid=N', 'gid=N'
795
Miklos Szeredibb9f5172005-07-03 18:03:11 +00007962005-07-03 Miklos Szeredi <miklos@szeredi.hu>
797
798 * kernel: clean up 'direct_io' code
799
Miklos Szeredie1bcece2005-06-28 10:37:06 +00008002005-06-28 Miklos Szeredi <miklos@szeredi.hu>
801
802 * Add 'mount.fuse' written by Petr Klima
803
Miklos Szeredi866826d2005-06-28 12:22:57 +0000804 * '/dev/fuse' is created by 'make install' if does not yet exist
805
Miklos Szeredi129ef8f2005-06-20 13:48:42 +00008062005-06-20 Miklos Szeredi <miklos@szeredi.hu>
807
808 * Fix UCLIBC compile error. Patch by Christian Magnusson
809
Miklos Szerediec12fad2005-06-08 10:26:34 +00008102005-06-08 Miklos Szeredi <miklos@szeredi.hu>
811
812 * Enable the auto-loading of the module via access to the
813 corresponding device file. Patch by Takashi Iwai.
814
Miklos Szeredidaa690e2005-06-08 10:41:36 +0000815 * Allow mounting a regular file (over a regular file) for
816 unprivleged users.
817
Miklos Szeredi7495abf2005-06-08 11:01:17 +0000818 * Do not create temporary device file. Require "/dev/fuse" to
819 exist, and be readable/writable by the mounting user.
820
Miklos Szeredi46960ce2005-06-02 09:05:00 +00008212005-06-02 Miklos Szeredi <miklos@szeredi.hu>
822
Miklos Szeredi56478552005-06-02 10:29:00 +0000823 * Released 2.3.0
824
8252005-06-02 Miklos Szeredi <miklos@szeredi.hu>
826
Miklos Szeredi46960ce2005-06-02 09:05:00 +0000827 * Fix serious information leak: if the filesystem returns a short
828 byte count to a read request, and there are non-zero number of
829 pages which are not filled at all, these pages will not be zeroed.
830 Hence the user can read out previous memory contents. Found by
831 Sven Tantau.
832
Miklos Szeredi33be22d2005-05-27 09:12:43 +00008332005-05-27 Miklos Szeredi <miklos@szeredi.hu>
834
835 * Add "readdir_ino" mount option, which tries to fill in the d_ino
836 field in struct dirent. This mount option is ignored if "use_ino"
837 is used. It helps some programs (e.g. 'pwd' used over NFS from a
838 non-Linux OS). Patch by David Shaw.
839
Miklos Szeredif94e0102005-05-12 14:56:34 +00008402005-05-12 Miklos Szeredi <miklos@szeredi.hu>
841
Miklos Szeredieb009c42005-05-12 15:01:17 +0000842 * Released 2.3-rc1
843
8442005-05-12 Miklos Szeredi <miklos@szeredi.hu>
845
Miklos Szeredif94e0102005-05-12 14:56:34 +0000846 * File save in krusader and other editors doesn't work with sshfs,
847 because open() is interrupted by a periodic signal, and open()
848 restarts forever, without any progress. This could just be fixed
849 in open(), but the problem is more generic: if signals are
850 received more often than the filesystem can get the request to
851 userspace, it will never finish. This is probably only a
852 theoretical problem, nevertheless I'm removing the possibility to
853 interrupt requests with anything other than SIGKILL, even before
854 being sent to userspace. Bugreport by Eduard Czimbalmos.
855
Miklos Szeredi0b9a06e2005-05-09 09:05:49 +00008562005-05-09 Miklos Szeredi <miklos@szeredi.hu>
857
Miklos Szeredic2a33ee2005-05-09 13:29:17 +0000858 * libfuse: add "tree_lock" rwlock, that is locked for write in
859 rename, unlink and rmdir, and locked for read in all other
860 operations. This should fix the rename/release race reported by
861 Valient Gough and others. The solution is very coarse, a finer
862 grained locking scheme could be implemented, but it would be much
863 more complex. Let's see whether this is good enough.
864
8652005-05-09 Miklos Szeredi <miklos@szeredi.hu>
866
Miklos Szeredi0b9a06e2005-05-09 09:05:49 +0000867 * Released 2.3-pre7
868
Miklos Szeredi38009022005-05-08 19:47:22 +00008692005-05-08 Miklos Szeredi <miklos@szeredi.hu>
870
871 * Better fix for out of order FORGET messages. Now the
872 LOOKUP/FORGET messages are balanced exactly (one FORGET can
873 balance many lookups), so the order no longer matters. This
Miklos Szeredi0b9a06e2005-05-09 09:05:49 +0000874 changes the kernel ABI slightly, but the library remains backward
Miklos Szeredi38009022005-05-08 19:47:22 +0000875 compatible.
876
Miklos Szeredid0cf1fb2005-05-06 10:10:38 +00008772005-05-06 Miklos Szeredi <miklos@szeredi.hu>
878
879 * Fix abort for out of order FORGET messages. Again. Spotted by
880 Franco Broi again. Sorry :)
881
Miklos Szeredi9372ffd2005-04-29 08:03:24 +00008822005-04-29 Miklos Szeredi <miklos@szeredi.hu>
883
Miklos Szeredicb6413a2005-04-29 08:16:20 +0000884 * Released 2.3-pre6
885
8862005-04-29 Miklos Szeredi <miklos@szeredi.hu>
887
Miklos Szeredi9372ffd2005-04-29 08:03:24 +0000888 * Make fusermount work with fuse kernel modules not yet supporting
889 the "group_id" option (added for the purpose of stricter
890 permission checking).
891
Miklos Szeredi9c1b68d2005-04-28 09:55:09 +00008922005-04-28 Miklos Szeredi <miklos@szeredi.hu>
893
894 * Check for hard-linked directories in lookup. This could cause
895 problems in the VFS, which assumes that such objects never exist.
896
897 * Make checking of permission for other users more strict. Now
898 the same privilege is required for the mount owner as for ptrace
899 on the process performing the filesystem operation.
Miklos Szeredi21019c92005-05-09 11:22:41 +0000900
Miklos Szeredi3efcb562005-04-23 13:34:29 +00009012005-04-23 Miklos Szeredi <miklos@szeredi.hu>
902
903 * Released 2.3-pre5
904
Miklos Szeredid001bf92005-04-22 07:54:11 +00009052005-04-22 Miklos Szeredi <miklos@szeredi.hu>
906
907 * Add -msoft-float to kernel module compile flags for 2.4.X. This
908 is needed on certain architectures. Report from Chris Kirby
909
910 * Fix buggy behavior of open(..., O_CREAT|O_EXCL) if interrupted.
911 Reported by David Shaw
912
Miklos Szeredi0111f9d2005-04-22 12:04:55 +0000913 * Remove "allow_root" option from kernel module, and implement
914 it's functionality in the library
915
916 * Fix Oops caused by premature release of fuse_conn. Clean up
917 related code, to be more readable
918
Miklos Szeredif9137452005-04-23 10:59:44 +0000919 * Sendfile should not use page cache if "direct_io" mount option
920 is given
921
Miklos Szeredib7640d22005-04-08 15:15:28 +00009222005-04-08 Miklos Szeredi <miklos@szeredi.hu>
923
924 * Fix Oops in case of nfs export. Spotted by David Shaw
925
Miklos Szeredi89814a12005-04-08 16:39:09 +0000926 * Fix another Oops in case of write over nfs with direct_io turned
927 on. Again spotted by David Shaw
928
Miklos Szerediab974562005-04-07 15:40:21 +00009292005-04-07 Miklos Szeredi <miklos@szeredi.hu>
930
Miklos Szeredi432d6182005-04-07 15:56:13 +0000931 * Released 2.3-pre4
932
9332005-04-07 Miklos Szeredi <miklos@szeredi.hu>
934
Miklos Szerediab974562005-04-07 15:40:21 +0000935 * lib: finalized new readdir() interface, which now supersedes the
936 getdir() method.
937
Miklos Szeredi30e093a2005-04-03 17:44:54 +00009382005-04-03 Miklos Szeredi <miklos@szeredi.hu>
939
940 * Released 2.3-pre3
941
9422005-04-03 Miklos Szeredi <miklos@szeredi.hu>
943
944 * Implement backward compatibility with version 5 kernel ABI
945
Miklos Szeredi18fce982005-04-01 21:07:35 +00009462005-04-01 Miklos Szeredi <miklos@szeredi.hu>
947
948 * Released 2.3-pre2
949
9502005-04-01 Miklos Szeredi <miklos@szeredi.hu>
951
952 * kernel: fix dirent offset handling
953
954 * lib: add readdir and releasedir methods
955
956 * lib: use fh field of fuse_file_info in opendir, readdir,
957 releasedir and fsyncdir methods
958
959 * lib: check kernel API version and bail out of it's old. This
960 will be properly fixed in the next release
961
9622005-03-31 Miklos Szeredi <miklos@szeredi.hu>
963
964 * Released 2.3-pre1
965
Miklos Szeredieab72ef2005-03-31 19:59:12 +00009662005-03-31 Miklos Szeredi <miklos@szeredi.hu>
967
968 * kernel API: add padding to structures, so 64bit and 32bit
969 compiler will return the same size
970
971 * kernel API: add offset field to fuse_dirent. This will allow
972 more sophisticated readdir interface for userspace
973
974 * kernel API: change major number to 6
975
976 * kernel: fix warnings on 64bit archs
977
978 * kernel: in case of API version mismatch, return ECONNREFUSED
979
Miklos Szeredi407e6a72005-03-25 12:19:43 +00009802005-03-24 Miklos Szeredi <miklos@szeredi.hu>
981
982 * kernel: trivial cleanups
983
Miklos Szeredi4283ee72005-03-21 12:09:04 +00009842005-03-21 Miklos Szeredi <miklos@szeredi.hu>
985
986 * Add fsyncdir() operation
987
Miklos Szeredid17da462005-03-21 11:47:04 +00009882005-03-19 Miklos Szeredi <miklos@szeredi.hu>
989
990 * kernel: add locking to background list (fixes previous fix)
991
9922005-03-18 Miklos Szeredi <miklos@szeredi.hu>
993
994 * kernel: fix bug which could cause leave busy inodes after
995 unmount, and Oops.
996
9972005-03-08 Miklos Szeredi <miklos@szeredi.hu>
998
999 * examples: add -lpthread to link flags to work around valgrind
1000 quirk
1001
1002 * lib: don't exit threads, so cancelation doesn't cause segfault
1003
Miklos Szeredi31fa41c2005-03-04 17:28:51 +000010042005-03-04 Miklos Szeredi <miklos@szeredi.hu>
1005
1006 * kernel: fix nasty bug which could cause an Oops under certain
1007 situations. Found by Magnus Johansson
1008
Miklos Szeredif43f0632005-02-28 11:46:56 +000010092005-02-28 Miklos Szeredi <miklos@szeredi.hu>
1010
Miklos Szeredi159bd7e2005-02-28 17:32:16 +00001011 * libfuse: added opendir() method. This can be used in case
Miklos Szeredif43f0632005-02-28 11:46:56 +00001012 permission checking in getdir() is too late. Thanks to Usarin
1013 Heininga for pointing out this deficiency
1014
Miklos Szeredi159bd7e2005-02-28 17:32:16 +00001015 * libfuse: added init() and destroy() methods to fuse_operations
1016
Miklos Szeredif43f0632005-02-28 11:46:56 +00001017 * kernel: llseek() method for files and directories made explicit
1018
1019 * kernel: fixed inode leak in NFS export in case of nodeid
1020 wrapping
1021
Miklos Szeredied3c97c2005-02-15 17:04:50 +000010222005-02-15 Miklos Szeredi <miklos@szeredi.hu>
1023
1024 * libfuse: clean up some unitialized memory found with valgrind
1025
Miklos Szeredi47c52982005-02-23 09:27:38 +00001026 * Add -lpthread to Libs in fuse.pc. Valgrind seems to need an
1027 explicitly linked libpthread for applications
1028
Miklos Szeredia7169412005-02-10 07:35:05 +000010292005-02-10 Miklos Szeredi <miklos@szeredi.hu>
1030
1031 * fusermount: set umask, otherwise /etc/mtab will have
1032 unpredictable permission. Spotted by Jindrich Kolorenc
1033
1034 * fusermount: set owner and group of /etc/mtab to original values
1035 on unmount
Miklos Szeredi830ef702005-02-10 19:39:34 +00001036
1037 * libfuse: add 'use_ino' option to help. Patch by Valient Gough
Miklos Szeredi21019c92005-05-09 11:22:41 +00001038
Miklos Szeredib92d9782005-02-07 16:10:49 +000010392005-02-07 Miklos Szeredi <miklos@szeredi.hu>
1040
1041 * Cleaned up directory reading (temporary file is not used)
1042
Miklos Szerediff30a6c2005-02-02 10:53:59 +000010432005-02-02 Miklos Szeredi <miklos@szeredi.hu>
1044
Miklos Szeredi7ed2e5d2005-02-02 13:31:14 +00001045 * Released 2.2
1046
10472005-02-02 Miklos Szeredi <miklos@szeredi.hu>
1048
Miklos Szerediff30a6c2005-02-02 10:53:59 +00001049 * Fix possible race when operation is interrupted
1050
Miklos Szeredi7a983952005-01-28 09:58:19 +000010512005-01-28 Miklos Szeredi <miklos@szeredi.hu>
1052
Miklos Szeredie5183742005-02-02 11:14:04 +00001053 * Fix compilation on 2.6.7
Miklos Szeredi7a983952005-01-28 09:58:19 +00001054
Miklos Szeredied6b5dd2005-01-26 17:07:59 +000010552005-01-26 Miklos Szeredi <miklos@szeredi.hu>
1056
Miklos Szeredid48d5f72005-01-26 20:43:41 +00001057 * Released 2.2-pre6
1058
10592005-01-26 Miklos Szeredi <miklos@szeredi.hu>
1060
Miklos Szeredied6b5dd2005-01-26 17:07:59 +00001061 * Fix bug in link() operation which caused the wrong path to be
1062 passed as the first argument. Found by Anton Altaparmakov
1063
Miklos Szeredi01fd89c2005-01-21 11:18:35 +000010642005-01-21 Miklos Szeredi <miklos@szeredi.hu>
1065
1066 * LIB: fix double reply in readdir operation
1067
Miklos Szeredi773d4ae2005-01-21 16:09:08 +00001068 * fusermount: fix uid checking bug. Patch by Adam Connell
1069
Miklos Szeredi1e1cddf2005-02-02 10:15:36 +00001070 * KERNEL: fix compile on various RedHat patched 2.4 kernels.
Miklos Szeredi57762852005-01-21 16:46:58 +00001071 Patch by Keshava Gowda
1072
Miklos Szeredi64074142005-01-20 08:48:11 +000010732005-01-20 Miklos Szeredi <miklos@szeredi.hu>
1074
Miklos Szeredi092b50b2005-01-20 18:05:07 +00001075 * KERNEL: provide correct llseek semantics for fuse device (fixes
1076 a bug on Progeny 2.4.20 kernel). Reported by Valient Gough
1077
10782005-01-20 Miklos Szeredi <miklos@szeredi.hu>
1079
Miklos Szeredi64074142005-01-20 08:48:11 +00001080 * Released 2.2-pre5 (matches kernel 2.6.11-rc1-mm2)
1081
Miklos Szeredi1adb2272005-01-18 21:19:58 +000010822005-01-18 Miklos Szeredi <miklos@szeredi.hu>
1083
1084 * KERNEL ABI: remove GETDIR operation, and add OPENDIR, READDIR
1085 and RELEASEDIR. This ends the ugly hack of passing a file
1086 descriptor to the kernel, and actually makes the code simpler.
1087
Miklos Szeredi7db35c02005-01-17 09:46:28 +000010882005-01-17 Miklos Szeredi <miklos@szeredi.hu>
1089
Miklos Szeredic2e960e2005-01-17 13:05:21 +00001090 * Released 2.2-pre4
1091
10922005-01-17 Miklos Szeredi <miklos@szeredi.hu>
1093
Miklos Szeredi7db35c02005-01-17 09:46:28 +00001094 * fusermount: remove capability setting, which was the cause of
1095 problems for some users. It seems that FS related capabilities
Miklos Szeredie5183742005-02-02 11:14:04 +00001096 are removed by setfsuid(), so this isn't even needed.
Miklos Szeredi7db35c02005-01-17 09:46:28 +00001097
Miklos Szeredidbe0f652005-01-15 14:32:56 +000010982005-01-15 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi9ed69ba2005-01-13 12:11:49 +00001099
Miklos Szeredidbe0f652005-01-15 14:32:56 +00001100 * fix compilation on 2.4 kernels (reported by Valient Gough)
1101
1102 * fix failure to unmount bug (found by David Shaw)
Miklos Szeredie5183742005-02-02 11:14:04 +00001103
Miklos Szeredi5ef2a9b2005-01-15 09:42:01 +00001104 * fusermount: improve parsing of /etc/fuse.conf
1105
11062005-01-13 Miklos Szeredi <miklos@szeredi.hu>
1107
Miklos Szeredi9ed69ba2005-01-13 12:11:49 +00001108 * Remove 'mount_max' and 'user_allow_other' module options. These
1109 are now checked by fusermount, and can be set in /etc/fuse.conf
1110
1111 * KERNEL: change check for fsid == 0 to capable(CAP_DAC_OVERRIDE)
1112
Miklos Szeredi81394522005-01-11 14:24:18 +000011132005-01-11 Miklos Szeredi <miklos@szeredi.hu>
1114
1115 * KERNEL: fix possible inode allocation problem, where
1116 sizeof(struct inode) is not aligned (found by Mike Waychison)
1117
1118 * KERNEL: use new follow_link/put_link methods
1119
1120 * KERNEL: cosmetic fixes
1121
Miklos Szeredic6ee9fd2005-01-10 09:53:04 +000011222005-01-10 Miklos Szeredi <miklos@szeredi.hu>
1123
1124 * Released 2.2-pre3
1125
11262005-01-10 Miklos Szeredi <miklos@szeredi.hu>
1127
1128 * Add missing code that was accidently left out
1129
Miklos Szeredi8c7da232005-01-09 12:27:41 +000011302005-01-09 Miklos Szeredi <miklos@szeredi.hu>
1131
Miklos Szeredi8d775f72005-01-09 20:22:53 +00001132 * Released 2.2-pre2
1133
11342005-01-09 Miklos Szeredi <miklos@szeredi.hu>
1135
Miklos Szeredi3c7d41b2005-01-09 20:05:27 +00001136 * Change "uid" mount option to "user_id" to avoid confusion with a
1137 mount option "uid" commonly used by many filesystems
1138
11392005-01-09 Miklos Szeredi <miklos@szeredi.hu>
1140
Miklos Szeredi8c7da232005-01-09 12:27:41 +00001141 * Released 2.2-pre1
1142
11432005-01-09 Miklos Szeredi <miklos@szeredi.hu>
1144
1145 * If FUSE is configured in the kernel, don't build it by default
1146
Miklos Szeredi2a927272005-01-07 11:14:15 +000011472005-01-07 Miklos Szeredi <miklos@szeredi.hu>
1148
1149 * Compile fix by Christian Magnusson
1150
Miklos Szeredib6220192005-01-05 16:19:10 +000011512005-01-05 Miklos Szeredi <miklos@szeredi.hu>
1152
1153 * Fix compilation for 2.6.{0-5} kernels
1154
Miklos Szeredi0f62d722005-01-04 12:45:54 +000011552005-01-04 Miklos Szeredi <miklos@szeredi.hu>
1156
1157 * KERNEL: if request is interrupted, still keep reference to used
1158 inode(s) and file, so that FORGET and RELEASE are not sent until
1159 userspace finishes the request.
1160
Miklos Szeredi3f0005f2005-01-04 19:24:31 +00001161 * remove /{sys,proc}/fs/fuse/version, and instead add an INIT
1162 request with the same information, which is more flexible,
1163 simpler, works on embedded systems.
1164
Miklos Szeredi0f62d722005-01-04 12:45:54 +000011652004-12-16 Miklos Szeredi <miklos@szeredi.hu>
1166
1167 * KERNEL ABI: update interface to make it independent of type
1168 sizes. This will help on 64 bit architectures which can run
1169 legacy 32 bit applications.
1170
1171 * KERNEL ABI: add "len" field to request headers. This will allow
1172 sending/receiving requests in multiple chunks.
1173
1174 * KERNEL: handle file type change more intelligently
1175
1176 * LIB: "-o debug" option should disable backgrounding (fix by
1177 Fabien Reygrobellet)
1178
Miklos Szeredi0fcfa032004-12-13 15:22:28 +000011792004-12-13 Miklos Szeredi <miklos@szeredi.hu>
1180
1181 * KERNEL: invalidate dentry/attributes if interrupted request
1182 could leave filesystem in an unknown state.
1183
Miklos Szeredie56818b2004-12-12 11:45:24 +000011842004-12-12 Miklos Szeredi <miklos@szeredi.hu>
1185
1186 * KERNEL: lots of cleanups related to avoiding possible deadlocks.
1187 These will cause some regressions, but stability is considered
1188 more important. If any of these features turns out to be
1189 important, it can be readded with the deadlock problems addressed.
Miklos Szeredie5183742005-02-02 11:14:04 +00001190
Miklos Szeredie56818b2004-12-12 11:45:24 +00001191 * Make all requests interruptible (only with SIGKILL currently).
1192 This can be used to break any deadlock produced by the userspace
1193 filesystem accessing it's own exported files. The RELEASE request
1194 is special, because if it's interrupted before sending it to
1195 userspace it is still sent, but the reply is not awaited.
1196
1197 * If request is interrupted before being sent to userspace, and if
1198 it hasn't yet got any side effects, it is always restarted,
1199 regardless of the SA_RESTART flag. This makes these interruptions
1200 transparent to the process.
1201
1202 * Remove shared-writable mmap support, which was prone to an
1203 out-of-memory deadlock situation
1204
1205 * Remove INVALIDATE userspace initiated request
1206
1207 * Make readpages() synchronous. Asynchronous requests are
1208 deadlock prone, since they cannot be interrupted.
1209
1210 * Add readv/writev support to fuse device operations
1211
1212 * Remove some printks, which userspace FS can use for a DoS
1213 against syslog
1214
1215 * Remove 'large_read' mount option from 2.6 in kernel, check it in
1216 fusermount instead
1217
1218 * LIB: improve compatibility with a fuse.h header installed in
1219 ${prefix}/include which in turn includes the real header.
1220
1221 * LIB: improve compatibility by defining fuse_main() (which is now
1222 not used), so old configure scripts find it.
1223
Miklos Szeredi0adcc6f2004-12-10 11:55:25 +000012242004-12-10 Miklos Szeredi <miklos@szeredi.hu>
1225
1226 * When mounting on a subdirectory of / don't duplicate slashes at
1227 the beggining of path (spotted by David Shaw)
1228
Miklos Szeredi80a0c3c2004-12-09 17:30:59 +000012292004-12-09 Miklos Szeredi <miklos@szeredi.hu>
1230
1231 * Fix bug causing garbage in mount options (spotted by David Shaw)
1232
Miklos Szeredid59bb9d2004-12-07 10:04:24 +000012332004-12-07 Miklos Szeredi <miklos@szeredi.hu>
1234
1235 * Add 'writepage' flag to 'fuse_file_info'.
1236
1237 * More comments in fuse.h
1238
Miklos Szeredif458b8c2004-12-07 16:46:42 +00001239 * Get rid of double underscores
1240
Miklos Szeredi799993c2004-12-04 21:20:05 +000012412004-12-04 Miklos Szeredi <miklos@szeredi.hu>
1242
1243 * Add -D_FILE_OFFSET_BITS=64 to cflags provided by pkg-config
1244
1245 * helper.c: add -ho option, which only displays the options not
1246 the usage header. This can be used by filesystems which have
1247 their own options.
1248
Miklos Szeredi0b6a0ad2004-12-04 00:40:50 +000012492004-12-03 Miklos Szeredi <miklos@szeredi.hu>
1250
1251 * Add source compatibility to 2.1 and 1.1 APIs. To select betwen
1252 versions simply define FUSE_USE_VERSION to 22, 21 or 11 before
1253 including the fuse header
1254
1255 * Add binary compatibility to 2.1 version of library with symbol
1256 versioning
1257
Miklos Szeredi3c7d41b2005-01-09 20:05:27 +000012582004-12-03 Miklos Szeredi <miklos@szeredi.hu>
1259
1260 * Released 2.1
1261
Miklos Szeredi039322d2004-12-01 18:39:12 +000012622004-12-01 Miklos Szeredi <miklos@szeredi.hu>
1263
1264 * kernel: clean up writing functions
1265
1266 * kernel: no allocation on write in direct_io mode
1267
Miklos Szeredib9b94cd2004-12-01 18:56:39 +00001268 * move linux/fuse.h to fuse_kernel.h
1269
Miklos Szeredi83a07442004-11-30 18:25:20 +000012702004-11-30 Miklos Szeredi <miklos@szeredi.hu>
1271
1272 * kernel: clean up reading functions
1273
Miklos Szeredi2defe5e2004-11-29 16:53:44 +000012742004-11-29 Miklos Szeredi <miklos@szeredi.hu>
1275
1276 * kernel: make readpage() uninterruptible
1277
Miklos Szeredi96dfad72004-11-30 00:00:02 +00001278 * kernel: check readonly filesystem flag in fuse_permission
1279
1280 * lib: don't die if version file not found and new style device
1281 exists
1282
1283 * lib: add '-r' option, which is short for '-o ro'
1284
1285 * fusermount: simplify device opening
1286
Miklos Szeredi2defe5e2004-11-29 16:53:44 +00001287 * kernel: when direct_io is turend on, copy data directly to
1288 destination without itermediate buffer. More efficient and safer,
1289 since no allocation is done.
1290
1291 * fusermount: fix warning if fuse module is not loaded
Miklos Szeredi162bcbb2004-11-29 23:43:44 +00001292
1293 * kernel: use /dev/fuse on 2.4 too
Miklos Szeredie5183742005-02-02 11:14:04 +00001294
Miklos Szeredifb28c5e2004-11-26 12:15:06 +000012952004-11-26 Miklos Szeredi <miklos@szeredi.hu>
1296
1297 * libfuse API change: open, read, write, flush, fsync and release
1298 are passed a 'struct fuse_file_info' pointer containing the open
1299 flags (open and release), and the file handle. Verion changed to
1300 3.0.
1301
Miklos Szeredia25d4c22004-11-23 22:32:16 +000013022004-11-23 Miklos Szeredi <miklos@szeredi.hu>
1303
1304 * More cleanups in the kernel
1305
1306 * The 10,229 charater device number has been assigned for FUSE
1307
1308 * Version file checking fix (reported by Christian Magnusson)
1309
1310 * fusermount: opening the fuse device now doesn't need /sys.
1311
1312 * Optimize reading by controlling the maximum readahead based on
1313 the 'max_read' mount option
1314
1315 * fixes for UCLIBC (Christian Magnusson)
1316
Miklos Szeredi13ed4822004-11-20 11:12:21 +000013172004-11-19 Miklos Szeredi <miklos@szeredi.hu>
1318
1319 * Cleaned up kernel in preparation for merge into mainline:
1320
1321 * Use /sys/fs/fuse/version instead of /proc/fs/fuse/version
1322
1323 * Use real device (/dev/fuse) instead of /proc/fs/fuse/dev
1324
1325 * __user annotations for sparse
1326
1327 * allocate individual pages instead of kmalloc in fuse_readdir,
1328 fuse_read and fuse_write.
1329
1330 * Fix NFS export in case "use_ino" mount option is given
1331
Miklos Szeredif3845c42004-11-20 11:18:34 +00001332 * Make libfuse and fusermount compatible with future versions
1333
1334 * fusermount: properly add mount options to /etc/mtab
1335
13362004-11-15 Miklos Szeredi <miklos@szeredi.hu>
1337
1338 * fusermount: do not resolve last component of mountpoint on if it
1339 is '.' or '..'. This new path resolvation is now done on mount as
1340 well as unmount. This enables relative paths to work on unmount.
1341
1342 * fusermount: parse common mount options like "ro", "rw", etc...
1343
1344 * Allow module params to be changed through sysfs
1345
Miklos Szeredi08ddb8e2004-11-14 09:19:51 +000013462004-11-14 Miklos Szeredi <miklos@szeredi.hu>
1347
1348 * Released 2.1-pre1
1349
13502004-11-14 Miklos Szeredi <miklos@szeredi.hu>
1351
1352 * Fix bug in fuse_readpages() causing Oops in certain situations.
1353 Bug found by Vincenzo Ciancia.
1354
1355 * Fix compilation with kernels versions > 2.6.9.
1356
Miklos Szeredi3a6ea062004-11-11 10:33:58 +000013572004-11-11 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi51ec1032004-11-10 11:52:26 +00001358
Miklos Szeredi3a6ea062004-11-11 10:33:58 +00001359 * Check kernel interface version in fusermount to prevent
1360 strangeness in case of mismatch.
Miklos Szeredi51ec1032004-11-10 11:52:26 +00001361
Miklos Szeredi3d60e762004-11-11 14:44:04 +00001362 * No need to allocate fuse_conn until actual mount happens
1363
1364 * Fix potential race between umount and fuse_invalidate
1365
1366 * Check superblock of proc file in addition to inode number
1367
Miklos Szeredi08ddb8e2004-11-14 09:19:51 +00001368 * Fix race between request_send_noreply() and fuse_dev_release()
Miklos Szeredi3d60e762004-11-11 14:44:04 +00001369
Miklos Szeredi51ec1032004-11-10 11:52:26 +000013702004-11-10 Miklos Szeredi <miklos@szeredi.hu>
1371
1372 * Separate configure for the kernel directory
1373
Miklos Szeredi3a6ea062004-11-11 10:33:58 +00001374 * Don't allow write to return more than 'count'
1375
1376 * Extend kernel interface for future use
1377
Miklos Szeredi51ec1032004-11-10 11:52:26 +000013782004-11-09 Miklos Szeredi <miklos@szeredi.hu>
1379
1380 * Fix 'makeconf.sh' to use autoreconf if available
1381
Miklos Szeredi8fb48fe2004-11-08 14:48:52 +000013822004-11-08 Miklos Szeredi <miklos@szeredi.hu>
1383
Miklos Szeredid507c732004-11-08 17:32:25 +00001384 * Add ino argument to 'fuse_dirfil_t'. NOTE: This breaks source
1385 compatibility with earlier versions. To compile earier versions
1386 just add '-DFUSE_DIRFIL_COMPAT' compile flag or fix the source.
1387 Do not use the "use_ino" mount flag with filesystems compiled with
1388 FUSE_DIRFIL_COMPAT.
Miklos Szeredidb1c3652004-11-08 21:11:53 +00001389
1390 * Add pkg-config support. To compile a FUSE based filesystem you
1391 can do "gcc -Wall `pkg-config --cflags --libs fuse` myfs.c -o myfs"
1392 or similar. Note, that the PKG_CONFIG_PATH environment variable
1393 usually needs to be set to "/usr/local/lib/pkgconfig".
1394
1395 * fuse.h is now installed in ${prefix}/include/fuse/
Miklos Szeredie5183742005-02-02 11:14:04 +00001396
Miklos Szeredia13d9002004-11-02 17:32:03 +000013972004-11-02 Miklos Szeredi <miklos@szeredi.hu>
1398
1399 * Added "use_ino" mount option. This enables the filesystems to
1400 set the st_ino field on files
1401
Miklos Szeredib1ab8b52004-11-01 10:57:41 +000014022004-11-01 Miklos Szeredi <miklos@szeredi.hu>
1403
1404 * Fix compile problems with ancient (<=2.4.18) kernels (reported
1405 by Jeremy Smith)
1406
Miklos Szeredi874e3c12004-11-01 23:15:20 +00001407 * Add "allow_root" mount option. Patch by Yaroslav Rastrigin
1408
1409 * Clear the 'exited' flag when mail loop is finished
1410
Miklos Szeredie989f0d2004-10-28 20:24:58 +000014112004-10-28 Miklos Szeredi <miklos@szeredi.hu>
1412
1413 * Make xattr functions work under 2.6 (bug found by Vincenzo
1414 Ciancia)
1415
Miklos Szeredi95a2bfc2004-10-26 21:32:13 +000014162004-10-26 Miklos Szeredi <miklos@szeredi.hu>
1417
1418 * Reset request in fuse_flush() (bugreport by David Shaw)
1419
Miklos Szeredi5dc8a802004-10-21 09:35:10 +000014202004-10-21 Miklos Szeredi <miklos@szeredi.hu>
1421
Miklos Szeredi0e70aa72004-10-21 16:24:29 +00001422 * fuse_main() now does not exit on error, rather it returns an
Miklos Szeredi5dc8a802004-10-21 09:35:10 +00001423 error code
1424
Miklos Szeredifb97a1b2004-10-21 09:59:13 +00001425 * Exported __fuse_setup() and __fuse_teardown() functions, which
Miklos Szeredi5dc8a802004-10-21 09:35:10 +00001426 make it easier to implement a custom event loop.
1427
Miklos Szeredifb97a1b2004-10-21 09:59:13 +00001428 * Use daemon() call to background the filesystem after mounting.
1429 This function closes the standard input, output and error and
1430 changes the current working directory to "/".
1431
Miklos Szeredi127d49b2004-10-14 13:33:39 +000014322004-10-14 Miklos Szeredi <miklos@szeredi.hu>
1433
1434 * Released 1.9
1435
Miklos Szeredid45baf42004-10-10 07:56:12 +000014362004-10-09 Miklos Szeredi <miklos@szeredi.hu>
1437
1438 * Don't allow fuse_flush() to be interrupted (bug found by David
1439 Shaw)
1440
Miklos Szeredi1f18db52004-09-27 06:54:49 +000014412004-09-27 Miklos Szeredi <miklos@szeredi.hu>
1442
1443 * Add PID to fuse_context. Patch by Steven James
1444
Miklos Szeredi1eea0322004-09-27 18:50:11 +00001445 * Change file handle type to 'unsigned long' in kernel interface
1446
Miklos Szeredid169f312004-09-22 08:48:26 +000014472004-09-22 Miklos Szeredi <miklos@szeredi.hu>
1448
1449 * A slight API change: fuse_get_context() doesn't need the "fuse"
1450 pointer, but the returned context contains it instead. The
1451 fuse_get() function is not needed anymore, so it's removed.
Miklos Szeredi21d587e2004-09-22 16:47:40 +00001452
1453 * Fix mounting and umounting FUSE filesystem under another FUSE
1454 filesystem by non-root (bug spotted by Valient Gough)
Miklos Szeredie5183742005-02-02 11:14:04 +00001455
Miklos Szeredic2309912004-09-21 13:40:38 +000014562004-09-21 Miklos Szeredi <miklos@szeredi.hu>
1457
1458 * Fix deadlock in case of memory allocation failure. Patch by
1459 Christian Magnusson
Miklos Szeredie5183742005-02-02 11:14:04 +00001460
Miklos Szeredib2cf9562004-09-16 08:42:40 +000014612004-09-16 Miklos Szeredi <miklos@szeredi.hu>
1462
1463 * Check memory allocation failures in libfuse
Miklos Szeredie5183742005-02-02 11:14:04 +00001464
Miklos Szeredi65afea12004-09-14 07:13:45 +000014652004-09-14 Miklos Szeredi <miklos@szeredi.hu>
1466
1467 * Check temporary file creation failure in do_getdir(). Bug
1468 spotted by Terje Oseberg
Miklos Szeredie5183742005-02-02 11:14:04 +00001469
Miklos Szeredi1bf53ee2004-09-13 11:47:59 +000014702004-09-13 Miklos Szeredi <miklos@szeredi.hu>
1471
1472 * Allow "large_read" option for 2.6 kernels but warn of deprecation
Miklos Szeredi09045c32004-09-13 12:00:49 +00001473
1474 * Make requests non-interruptible so race with FORGET is avoided.
1475 This is only a temporary solution
Miklos Szeredi442d9652004-09-13 14:56:57 +00001476
1477 * Support compiling FUSE kernel module on 2.4.x UML kernels
Miklos Szeredie5183742005-02-02 11:14:04 +00001478
Miklos Szeredi8b2d3332004-09-09 08:44:01 +000014792004-09-09 Miklos Szeredi <miklos@szeredi.hu>
1480
1481 * Fix bug in case two FORGETs for the same node are executed in
1482 the wrong order. Bug spotted and endured for months by Franco
1483 Broi, and logfile for solution provided by Terje Oseberg
1484
Miklos Szeredi12085102004-09-02 18:13:57 +000014852004-09-01 Miklos Szeredi <miklos@szeredi.hu>
1486
1487 * Add -D_REENTRANT to the compile flags
1488
1489 * Add documentation of fuse internals by Terje Oseberg
Miklos Szeredie5183742005-02-02 11:14:04 +00001490
Miklos Szeredi22ea3dc2004-08-16 13:29:11 +000014912004-08-16 Miklos Szeredi <miklos@szeredi.hu>
1492
1493 * Change release method to be non-interruptible. Fixes bug
1494 causing missing release() call when program which has opened files
1495 is killed (reported by Franco Broi and David Shaw)
Miklos Szeredie5183742005-02-02 11:14:04 +00001496
Miklos Szeredi891b8742004-07-29 09:27:49 +000014972004-07-29 Miklos Szeredi <miklos@szeredi.hu>
1498
1499 * Add fuse_invalidate() to library API
1500
Miklos Szeredi94ed76a2004-07-26 19:38:45 +000015012004-07-26 Miklos Szeredi <miklos@szeredi.hu>
1502
1503 * Check permissions in setattr if 'default_permissions' flag is
1504 set. Bug spotted by Damjan Lango
1505
Miklos Szeredid66d3942004-07-24 13:47:44 +000015062004-07-24 Miklos Szeredi <miklos@szeredi.hu>
1507
Miklos Szeredi209f5d02004-07-24 19:56:16 +00001508 * 'large_read' mount option removed for 2.6 kernels, since the
1509 default (dynamic read size) is better
1510
1511 * Extend kernel API with file handles. A file handle is returned
1512 by open, and passed to read, write, flush, fsync and release.
1513 This is currently only used for debug output in the library.
Miklos Szeredie5183742005-02-02 11:14:04 +00001514
Miklos Szeredi209f5d02004-07-24 19:56:16 +00001515 * Security changes:
1516
1517 * Change the current directory to the mountpoint before checking
1518 the permissions and mount filesystem on "."
1519
1520 * By default don't modprobe the fuse module for non-root. The old
1521 behavior can be restored with the '--enable-auto-modprobe' flag of
1522 ./configure
1523
1524 * By default don't allow shared writable mappings for non-root.
1525 The old behavior can be restored with the 'user_mmap=1' module
1526 parameter
Miklos Szeredid66d3942004-07-24 13:47:44 +00001527
Miklos Szeredibd7661b2004-07-23 17:16:29 +000015282004-07-23 Miklos Szeredi <miklos@szeredi.hu>
1529
1530 * Clean up mount option passing to fusermount and to fuse_new()
1531 BEWARE: this changes the userspace API slightly, and the command
1532 line usage of programs using fuse_main()
Miklos Szeredie5183742005-02-02 11:14:04 +00001533
Miklos Szeredi58865372004-07-20 14:22:26 +000015342004-07-20 Miklos Szeredi <miklos@szeredi.hu>
1535
1536 * Optimize reading under 2.6 kernels by issuing multiple page
1537 asynchronous read requests
Miklos Szeredie5183742005-02-02 11:14:04 +00001538
Miklos Szeredi84ba0f42004-07-18 11:32:59 +000015392004-07-18 Miklos Szeredi <miklos@szeredi.hu>
1540
1541 * Only use redirty_page_for_writepage() for kernels >= 2.6.6
Miklos Szeredie5183742005-02-02 11:14:04 +00001542
Miklos Szeredi069c9502004-07-16 16:17:02 +000015432004-07-16 Miklos Szeredi <miklos@szeredi.hu>
1544
1545 * Separate directory entry and inode attribute validity timer
1546
1547 * New write semaphore to stop page writeback during truncate
1548
1549 * Fsync now waits for all writes to complete before sending the
1550 request
1551
1552 * Optimization: if a page is completely written by
1553 fuse_commit_write(), clear the dirty flag and set the uptodate
1554 flag for that page
1555
Miklos Szeredie7d5d7d2004-07-16 18:27:50 +00001556 * Some memory cleanup at exit
1557
Miklos Szeredi2529ca22004-07-13 15:36:52 +000015582004-07-13 Miklos Szeredi <miklos@szeredi.hu>
1559
1560 * Add FUSE_HARD_REMOVE flag, and '-i' option to fuse main, which
Miklos Szerediad83d072004-07-13 20:23:03 +00001561 disable the "hide if open" behavior of unlink/rename.
1562
1563 * If temporary buffer allocation fails in raw read, fall back to a
1564 smaller buffer
Miklos Szeredie5183742005-02-02 11:14:04 +00001565
Miklos Szeredi73798f92004-07-12 15:55:11 +000015662004-07-12 Miklos Szeredi <miklos@szeredi.hu>
1567
1568 * Fix bug in do_open() in libfuse: open count was incremented
1569 after the reply is sent so it could race with unlink/forget and
1570 cause an abort.
Miklos Szeredie5183742005-02-02 11:14:04 +00001571
Miklos Szeredi015fe702004-07-12 11:52:24 +000015722004-07-08 Miklos Szeredi <miklos@szeredi.hu>
1573
1574 * When performing create or remove operation, refresh the parent's
1575 attributes on next revalidate, as i_nlink (and maybe size/time)
1576 could be inacurate.
1577
1578 * Use redirty_page_for_writepage() in fuse_writepage() for skipped
1579 pages (2.6 only)
1580
1581 * Set set_page_dirty address space operation (2.6 only)
1582
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000015832004-07-06 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi25385bb2004-07-06 22:27:36 +00001584
1585 * Minor fix in read: print debug info even if read size is zero
1586
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000015872004-07-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi58615e02004-07-04 21:21:08 +00001588
1589 * Fix race between truncate and writepage (fsx-linux now runs
1590 without error)
1591
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000015922004-07-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szerediad051c32004-07-02 09:22:50 +00001593
1594 * Fix kernel hang on mkfifo under 2.4 kernels (spotted and patch
1595 by Mattias Wadman)
1596
1597 * Added option for direct read/write (-r)
1598
1599 * Fix revalidate time setting for newly created inodes
1600
Miklos Szerediacb4d362004-07-02 16:20:45 +00001601 * Remove uid==0 check for '-x' option in fusermount (kernel checks
1602 this)
1603
1604 * fuse_main() only installs handlers for signals (out of INT, HUP,
1605 TERM, PIPE), for which no handler has yet been installed
1606
1607 * Add module option 'user_allow_other' which if set to non-zero
1608 will allow non root user to specify the 'allow_other' mount option
1609 ('-x' option of fusermount)
1610
Miklos Szeredi014d7d22004-07-02 21:22:37 +00001611 * Fix deadlock between page writeback completion and truncate
1612 (bug found by Valient Gough with the fsx-linux utility)
1613
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016142004-07-01 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szerediad051c32004-07-02 09:22:50 +00001615
1616 * Change passing fuse include dir to 2.6 kernel make system more
Miklos Szerediacb4d362004-07-02 16:20:45 +00001617 robust (fixes compile problems seen on SuSE 9.1 with updated 2.6
1618 kernel)
Miklos Szerediad051c32004-07-02 09:22:50 +00001619
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016202004-06-30 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi556d03d2004-06-30 11:13:41 +00001621
1622 * Acquire inode->i_sem before open and release methods to prevent
1623 concurrent rename or unlink operations.
1624
Miklos Szeredi65cf7c72004-06-30 11:34:56 +00001625 * Make __fuse_read_cmd() read only one command. This allows
1626 multiplexing the fuse file descriptor with other event sources
1627 using select() or poll() (patch by Jeff Harris)
1628
1629 * Export 'exited' flag with __fuse_exited() (patch by Jeff Harris)
1630
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016312004-06-27 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi71e9f862004-06-28 16:52:16 +00001632
1633 * Fix file offset wrap around at 4G when doing large reads
1634
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016352004-06-24 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi1ea9c962004-06-24 21:00:00 +00001636
Miklos Szeredi9a31cca2004-06-26 21:11:25 +00001637 * Fix memory leak in open (Valient Gough)
1638
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016392004-06-24 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi9a31cca2004-06-26 21:11:25 +00001640
Miklos Szeredi1ea9c962004-06-24 21:00:00 +00001641 * Add "close after delete" support to libfuse (patch by Valient
1642 Gough)
1643
1644 * Cancel all worker threads before exit in multithreaded mode
1645
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016462004-06-23 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie79dc7e2004-06-23 05:57:30 +00001647
1648 * Fix locking bugs
Miklos Szeredib3210582004-06-23 13:54:33 +00001649
1650 * Don't send reply to RELEASE
Miklos Szeredicb264512004-06-23 18:52:50 +00001651
1652 * Work with newer libtool (1.5a)
1653
1654 * Check for st_atim member of struct stat
Miklos Szeredie5183742005-02-02 11:14:04 +00001655
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016562004-06-22 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredid3dd2d52004-06-22 18:46:02 +00001657
1658 * No request allocation needed on inode and file release
Miklos Szeredie5183742005-02-02 11:14:04 +00001659
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016602004-06-21 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi2778f6c2004-06-21 09:45:30 +00001661
1662 * Fix possible inode leak in userspace in case of unfinished
1663 lookup/mknod/mkdir/symlink/link operation.
Miklos Szeredie5183742005-02-02 11:14:04 +00001664
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016652004-06-20 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredied62d862004-06-20 08:57:39 +00001666
1667 * Fix some races and cleanups in fuse_read_super()
Miklos Szeredie5183742005-02-02 11:14:04 +00001668
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016692004-06-19 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi7eafcce2004-06-19 22:42:38 +00001670
1671 * Requests are allocated at open time
Miklos Szeredie5183742005-02-02 11:14:04 +00001672
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016732004-06-03 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi203afbf2004-06-03 13:21:08 +00001674
1675 * Build shared library as well as static (using libtool)
1676
1677 * Change FUSE_MINOR_VERSION from 1 to 0. I know it's illegal but
1678 there has not been a release with the previous minor number, and I
1679 hope nobody is using it for anything.
Miklos Szerediff875352004-06-03 13:52:40 +00001680
1681 * Change fuse_main(), so that default behavior is to go into
1682 background if mount is successful. '-f' and '-d' options disable
1683 backgrounding. This fixes the "Why does my FUSE daemon hang?"
1684 newbie complaint.
Miklos Szeredi63b8c1c2004-06-03 14:45:04 +00001685
1686 * Cache ENOSYS (function not implemented) errors on *xattr, flush
1687 and fsync
Miklos Szeredi152f29e2004-06-03 17:52:32 +00001688
1689 * Don't call getdir method from open() only from first readdir().
1690 Open is sometimes just used to store the current directory
1691 (e.g. find)
Miklos Szeredie5183742005-02-02 11:14:04 +00001692
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016932004-05-18 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie2e4ac22004-05-18 08:45:28 +00001694
1695 * Added flush() call
Miklos Szeredie5183742005-02-02 11:14:04 +00001696
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016972004-05-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi689f5632004-05-04 08:49:16 +00001698
1699 * Extended attributes support for 2.4 (patch by Cody Pisto)
Miklos Szeredie5183742005-02-02 11:14:04 +00001700
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017012004-04-20 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredid30a0f22004-04-20 08:25:43 +00001702
1703 * Fixed parser with modversions (Mattias Wadman)
Miklos Szeredie5183742005-02-02 11:14:04 +00001704
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017052004-04-19 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi8ec48ec2004-04-19 10:24:41 +00001706
1707 * Added mount option parser to 2.4 build
Miklos Szeredie5183742005-02-02 11:14:04 +00001708
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017092004-04-13 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi87f30a92004-04-13 10:49:54 +00001710
1711 * Replaced binary mount data with text options
1712
1713 * Show FUSE specific mount options in /proc/mounts
1714
1715 * Check in fuse.h whether _FILE_OFFSET_BITS is set to 64
1716
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017172004-04-09 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredic26c14d2004-04-09 17:48:32 +00001718
1719 * Check some limits so userspace won't get too big requests
1720
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017212004-04-05 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi2ac5e2a2004-04-05 11:24:24 +00001722
1723 * Kill compile warning
1724
1725 * Upgraded user-mount patch for 2.6.5
1726
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017272004-04-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi851948c2004-04-02 14:58:22 +00001728
1729 * Add detection of user-mode-linux to configure
1730
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017312004-03-31 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi03cebae2004-03-31 10:19:18 +00001732
1733 * fixed zero size case for getxattr and listxattr
1734
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017352004-03-30 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi98667e22004-03-30 07:24:29 +00001736
1737 * new fusermount flag '-z': lazy unmount, default is not lazy
1738
Miklos Szeredi3ed84232004-03-30 15:17:26 +00001739 * Extended attributes operations added (getxattr, setxattr,
1740 listxattr, removexattr)
1741
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017422004-03-25 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi77f39942004-03-25 11:17:52 +00001743
1744 * If filesystem doesn't define a statfs operation, then an
1745 all-zero default statfs is returned instead of ENOSYS
1746
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017472004-03-24 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi4df9cf22004-03-24 09:19:27 +00001748
1749 * Add FS_BINARY_MOUNTDATA filesystem flag for kernels > 2.6.4
1750
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017512004-03-09 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi254d5ed2004-03-02 11:11:24 +00001752
Miklos Szeredi8af63ae2004-03-09 10:54:17 +00001753 * Fix for uClinux (Christian Magnusson)
1754
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017552004-03-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi8af63ae2004-03-09 10:54:17 +00001756
Miklos Szeredi18c1e4d2004-03-02 16:18:30 +00001757 * fuse_main() adds "-n progname" to the fusermount command line
Miklos Szeredie5183742005-02-02 11:14:04 +00001758
Miklos Szeredi254d5ed2004-03-02 11:11:24 +00001759 * More kernel interface changes:
1760
1761 * Lookup/getattr return cache timeout values
1762
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017632004-02-25 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie970f302004-02-25 08:39:42 +00001764
1765 * Clean up option parsing in fuse_main()
1766
Miklos Szeredi33c319c2004-02-25 09:19:29 +00001767 * Added fuse_get() function which returns the fuse object created
1768 by fuse_main()
1769
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017702004-02-20 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredib5958612004-02-20 14:10:49 +00001771
Miklos Szeredic40748a2004-02-20 16:38:45 +00001772 * removed old way of mounting (fusermount mountpoint program)
1773
Miklos Szeredib5958612004-02-20 14:10:49 +00001774 * more kernel interface changes:
1775
1776 * added nanosecond precision to file times
1777
Miklos Szeredic40748a2004-02-20 16:38:45 +00001778 * removed interface version from mount data
1779
1780 * added /proc/fs/fuse/version which contains MAJOR.MINOR
1781
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017822004-02-19 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi18e75e42004-02-19 14:23:27 +00001783
1784 * statfs library API changed to match other methods. Since this
1785 is not backward compatible FUSE_MAJOR_VERSION is changed to 2
1786
Miklos Szeredi76f65782004-02-19 16:55:40 +00001787 * kernel interface changes follow:
1788
1789 * statfs changed to 64 bits, added 'bavail' field
1790
1791 * add generation number to lookup result
1792
1793 * optimized mknod/mkdir/symlink/link (no separate lookup is
1794 needed)
1795
1796 * rdev size increased to 32 bits for mknod
1797
1798 * kernel interface version changed to 3.1
Miklos Szeredie5183742005-02-02 11:14:04 +00001799
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018002004-02-18 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredifa39e902004-02-18 13:29:36 +00001801
1802 * user-mount upgraded for 2.6.3 kernel
Miklos Szeredie5183742005-02-02 11:14:04 +00001803
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018042004-02-17 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi69cc79a2004-02-17 08:57:29 +00001805
1806 * Added user-mount.2.6.2-rc3.patch
1807
1808 * Add FS_SAFE flag to fuse filesystem
1809
1810 * fusermount should allow (un)mounting for non-root even if not
1811 suid-root
Miklos Szeredie5183742005-02-02 11:14:04 +00001812
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018132004-02-12 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi4c7f7622004-02-12 13:41:30 +00001814
1815 * Remove MS_PERMISSION mount flag (that means something else now)
Miklos Szeredie5183742005-02-02 11:14:04 +00001816
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018172004-02-10 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi9a2b08d2004-02-10 09:36:07 +00001818
1819 * Added check for i_size_read/write functions to configure.in
1820 (patch by Valient Gough)
1821
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018222004-02-06 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi377b2ea2004-02-06 09:48:51 +00001823
1824 * Fixed writing >= 2G files
Miklos Szeredif58cc612004-02-06 13:52:00 +00001825
1826 * Check file size on open (with generic_file_open())
Miklos Szeredid1199f82004-02-06 15:29:22 +00001827
1828 * Readpage calls flush_dcache_page() after storing data
1829
1830 * Use i_size_read/write for accessing inode->i_size
Miklos Szeredi89b86af2004-02-06 17:02:08 +00001831
1832 * Make loopback mount of a fuse file work
Miklos Szeredie5183742005-02-02 11:14:04 +00001833
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018342004-02-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi88124792004-02-04 11:06:17 +00001835
1836 * Released 1.1
Miklos Szeredie5183742005-02-02 11:14:04 +00001837
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018382004-01-29 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi72f6a932004-01-29 11:29:18 +00001839
1840 * Properly check if the inode exists in fuse_invalidate
Miklos Szeredie5183742005-02-02 11:14:04 +00001841
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018422004-01-27 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szerediedf26632004-01-27 14:54:47 +00001843
1844 * Added -q option for fusermount
1845
1846 * fuse_unmount() now uses -q option of fusermount, so no error is
1847 printed if the cause of the program exit is that the filesystem
1848 has already been unmounted
1849
Miklos Szeredif4f8b892004-01-27 17:04:59 +00001850 * Fix i_nlink correctness after rmdir/unlink
1851
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018522004-01-26 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi307242f2004-01-26 11:28:44 +00001853
Miklos Szeredib1158392004-01-26 14:43:12 +00001854 * Released 1.1-pre2
1855
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018562004-01-26 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredib1158392004-01-26 14:43:12 +00001857
Miklos Szeredi307242f2004-01-26 11:28:44 +00001858 * Fix typo (thanks Marcos Dione)
Miklos Szeredib1158392004-01-26 14:43:12 +00001859
1860 * Compile fixes for 2.4 kernels
Miklos Szeredie5183742005-02-02 11:14:04 +00001861
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018622004-01-23 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi307242f2004-01-26 11:28:44 +00001863
1864 * Fix CONFIG_MODVERSIONS compile on 2.6
Miklos Szeredie5183742005-02-02 11:14:04 +00001865
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018662004-01-22 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi307242f2004-01-26 11:28:44 +00001867
1868 * Write all pending data before a RELEASE operation
1869
1870 * Suppress 'Bad file descriptor' warning on exit
1871
1872 * Replaced fusermount option '-d xxx' with '-n xxx' so it doesn't
Miklos Szeredib1158392004-01-26 14:43:12 +00001873 get confused with '-d' of fuse_main() (sorry about this change)
Miklos Szeredi307242f2004-01-26 11:28:44 +00001874
Miklos Szeredib1158392004-01-26 14:43:12 +00001875 * New fusermount option '-l' which enables big reads. Big reads
1876 are now disabled by default.
Miklos Szeredi307242f2004-01-26 11:28:44 +00001877
1878 * fuse_main() can accept fusermount arguments after a '--'
1879
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018802004-01-19 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie815c032004-01-19 18:20:49 +00001881
1882 * Support for exporting filesystem over NFS (see README.NFS)
1883
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018842004-01-14 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi7c35cf92004-01-14 16:56:49 +00001885
1886 * Support non-blocking writepage on 2.6. This makes FUSE behave
1887 much more nicely in low-memory situations
1888
1889 * Fix 32-bit dev handling in getattr and mknod for 2.6 kernels.
1890 (Note: the mknod method does not yet use 32bit device number)
Miklos Szeredie5183742005-02-02 11:14:04 +00001891
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018922004-01-13 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie8663f32004-01-13 15:33:12 +00001893
1894 * Code cleanups
1895
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018962004-01-07 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi4b7abe32004-01-07 16:49:12 +00001897
1898 * Released 1.1-pre1
1899
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019002004-01-06 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredif85ab242004-01-07 12:16:45 +00001901
1902 * Integrated 2.6 kernel support patch by Michael Grigoriev
1903
1904 * Improvements and cleanups for 2.6 kernels
1905
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019062004-01-05 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi7ffb8cf2004-01-05 15:07:12 +00001907
Miklos Szeredie5183742005-02-02 11:14:04 +00001908 * Added -d option to fusermount
Miklos Szeredi7ffb8cf2004-01-05 15:07:12 +00001909
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019102003-12-15 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi2f3d9402003-12-15 12:11:33 +00001911
1912 * Added major+minor version to library API, and minor version to
1913 kernel API
1914
David McNab7a19caf2003-12-13 02:05:46 +000019152003-12-13 David McNab <david@rebirthing.co.nz>
1916
1917 * Implemented fsync support in examples/example.py
1918
1919 * Implemented 'fsync' and 'statfs' methods in python
1920 interface
1921
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019222003-12-12 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie4cf7332003-12-12 11:53:31 +00001923
Miklos Szeredie5183742005-02-02 11:14:04 +00001924 * Make it compile on 2.4.19.
Miklos Szeredie4cf7332003-12-12 11:53:31 +00001925
Miklos Szeredi5e43f2c2003-12-12 14:06:41 +00001926 * Add fsync operation (write file failed on xemacs & vi)
Miklos Szeredie4cf7332003-12-12 11:53:31 +00001927
David McNab8bf62632003-12-11 22:49:22 +000019282003-12-12 David McNab <david@rebirthing.co.nz>
1929
1930 * Added distutils support to the python module, as per standard
1931 python development practice
1932
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019332003-12-11 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi874d95d2003-12-11 14:27:57 +00001934
1935 * Add file locking for mount/unmount (based on patch by Valient
1936 Gough)
1937
19382003-12-11 David McNab <david@rebirthing.co.nz>
1939
1940 * Python filesystem - was broken with python2.3, now fixed:
1941 - changed PyTuple_* calls to PySequence_*, because os.lstat
1942 is no longer returning a pure tuple
1943 - changed PyInt_Check() calls to also call PyLong_Check,
1944 to cover for cases (eg os.lstat) where longs are returned
1945 - Added support for file 'release' handling, which IMO is
1946 essential since this signals to a FS that writes to a file
1947 are complete (and therefore the file can now be disposed of
1948 meaningfully at the python filesystem's discretion)
1949 - Added '__init__' handler to base Fuse class, which allows
1950 your Python class to know the mountpoint and mount args,
1951 as attributes myfs.mountpoint, myfs.optlist, myfs.optdict
Miklos Szeredie5183742005-02-02 11:14:04 +00001952
Miklos Szeredi874d95d2003-12-11 14:27:57 +00001953 * General:
1954 - added 'mount.fuse' script (in util/ dir), which is meant to be
1955 symlinked from /sbin, and which allows FUSE filesystems to
1956 be mounted with the 'mount' command, and listed in fstab;
1957 also, mount arguments get passed to your filesystem
1958
1959
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019602003-11-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredif27ec7d2003-11-04 13:46:32 +00001961
1962 * Fix kernel version detection (again). Bugreport by Peter Levart
1963
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019642003-11-03 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi36ca5562003-11-03 19:32:14 +00001965
1966 * Applied read combining patch by Michael Grigoriev (tested by
1967 Valient Gough and Vincent Wagelaar)
1968
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019692003-10-22 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredif08ace02003-10-22 11:11:57 +00001970
1971 * Mtab handling fix in fusermount by "Valient Gough" (SF patch
1972 #766443)
Miklos Szeredie5183742005-02-02 11:14:04 +00001973
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019742003-10-13 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi0e535082003-10-13 10:08:06 +00001975
1976 * Error code fixes in kernel module
Miklos Szeredie5183742005-02-02 11:14:04 +00001977
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019782003-10-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi27af48b2003-10-04 17:31:38 +00001979
1980 * kernel version detection fix
1981
1982 * fusermount now uses "lazy" umount option
1983
1984 * fusermount can use modprobe with module-init-tools
1985
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019862003-09-08 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredida4e4862003-09-08 11:14:11 +00001987
1988 * Integrated caching patch by Michael Grigoriev
1989
Miklos Szeredida4e4862003-09-08 11:14:11 +00001990 * Added "Filesystems" file with descriptions of projects using
1991 FUSE
1992
Miklos Szeredi02ceb112003-09-08 13:52:25 +00001993 * Added patch by Michael Grigoriev to allow compliation of FUSE
1994 kernel module for 2.6 kernels
1995
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019962003-06-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi84838472003-06-02 06:12:27 +00001997
1998 * And another spec-file fix by Achim Settelmeier
1999
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020002003-05-26 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi21c282b2003-05-26 07:12:57 +00002001
2002 * Spec-file fix by Achim Settelmeier
2003
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020042003-03-10 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi79b461a2003-03-10 09:35:34 +00002005
Miklos Szerediac361172004-11-02 19:14:14 +00002006 * Fix umount oops (found by Samuli Kärkkäinen)
Miklos Szeredi79b461a2003-03-10 09:35:34 +00002007
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020082003-03-05 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi941ae4c2003-03-05 08:29:58 +00002009
2010 * Merge of fuse_redhat.spec and fuse.spec by Achim Settelmeier
2011
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020122003-03-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredia9b2f262003-03-04 09:37:20 +00002013
2014 * Updated fuse.spec file (Achim Settelmeier)
2015
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020162003-02-19 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredic0226bb2003-02-19 16:05:06 +00002017
2018 * Version 1.0 released
2019
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020202003-02-12 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredifa84e0d2003-02-13 09:53:33 +00002021
2022 * SuSE compilation fix by Juan-Mariano de Goyeneche
2023
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020242002-12-10 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredic8ba2372002-12-10 12:26:00 +00002025
2026 * The release() VFS call is now exported to the FUSE interface
2027
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020282002-12-05 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi0f48a262002-12-05 14:23:01 +00002029
2030 * 64 bit file offset fixes in the fuse kernel module
2031
2032 * Added function 'fuse_exit()' which can be used to exit the main
2033 loop
2034
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020352002-12-03 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi5f054812002-12-03 18:45:21 +00002036
2037 * Added _FILE_OFFSET_BITS=64 define to fuse.h. Note, that this is
2038 an incompatible interface change.
2039
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020402002-10-28 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi6bf8b682002-10-28 08:49:39 +00002041
2042 * Portablility fix (bug reported by C. Chris Erway)
2043
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020442002-10-25 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredid6e9f882002-10-25 11:40:14 +00002045
2046 * Use Mark Glines' fd passing method for default operation instead
2047 of old reexec
2048
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020492002-10-22 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi60c23522002-10-24 09:19:43 +00002050
Miklos Szeredi5e5d61f2002-10-24 11:50:33 +00002051 * fix "Stale NFS file handle" bug caused by changes in 2.4.19
2052
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020532002-10-22 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi5e5d61f2002-10-24 11:50:33 +00002054
Miklos Szeredi60c23522002-10-24 09:19:43 +00002055 * fix incompatiblity with Red Hat kernels, with help from Nathan
2056 Thompson-Amato.
2057
Mark Glines65ba2192002-04-18 14:41:48 +000020582002-04-18 Mark Glines <mark@glines.org>
2059
2060 * added an alternative to fuse_mount(), called
2061 fuse_mount_ioslave(), which does not need to reexec the
2062 FUSE program.
2063 * added a small helper util needed by fuse_mount_ioslave().
2064
Mark Glines220635a2002-03-17 07:01:14 +000020652002-03-16 Mark Glines <mark@glines.org>
2066
2067 * use struct fuse_statfs everywhere possible to avoid problems
2068 with the headerfiles changing struct statfs member sizes
2069
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020702002-03-01 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi081f3c22002-03-01 07:47:35 +00002071
2072 * Another RPM spec file for RedHat >= 7 by Ian Pilcher
2073
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020742002-01-14 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredif782fc42002-01-14 08:48:46 +00002075
2076 * RPM support by Achim Settelmeier
2077
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020782002-01-09 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi4b2bef42002-01-09 12:23:27 +00002079
Miklos Szerediddc862a2002-01-09 13:46:10 +00002080 * Version 0.95 released
Miklos Szeredie5183742005-02-02 11:14:04 +00002081
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020822002-01-09 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szerediddc862a2002-01-09 13:46:10 +00002083
Miklos Szeredi4b2bef42002-01-09 12:23:27 +00002084 * Revaidate all path components not just the last, this means a
2085 very small performance penalty for being more up-to-date.
2086
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020872002-01-08 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi4b2bef42002-01-09 12:23:27 +00002088
2089 * Update and fix python interface
2090
Mark Glinesd84b39a2002-01-07 16:32:02 +000020912002-01-07 Mark Glines <mark@glines.org>
Miklos Szeredie5183742005-02-02 11:14:04 +00002092
Mark Glinesd84b39a2002-01-07 16:32:02 +00002093 * Added statfs() support to kernel, lib, examples, and perl!
2094
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020952001-12-26 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi46a46dc2002-01-08 09:55:14 +00002096
2097 * Better cross compilation support
2098
2099 * Ported to Compaq IPAQ
2100
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021012001-12-20 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie5183742005-02-02 11:14:04 +00002102
Miklos Szeredife25def2001-12-20 15:38:05 +00002103 * Added function fuse_get_context() to library API (inspired by
Miklos Szeredie5183742005-02-02 11:14:04 +00002104 patch from Matt Ryan)
2105
Miklos Szeredife25def2001-12-20 15:38:05 +00002106 * Added flags to fusermount and to kernel interface to control
2107 permission checking
Miklos Szeredi8cffdb92001-11-09 14:49:18 +00002108
Miklos Szeredife25def2001-12-20 15:38:05 +00002109 * Integrated fuse_set_operations() into fuse_new()
2110
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021112001-12-08 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredife25def2001-12-20 15:38:05 +00002112
2113 * Applied header protection + extern "C" patch by Roland
2114 Bauerschmidt
2115
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021162001-12-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredife25def2001-12-20 15:38:05 +00002117
Miklos Szeredie5183742005-02-02 11:14:04 +00002118 * Added perl bindings by Mark Glines
Miklos Szeredife25def2001-12-20 15:38:05 +00002119
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021202001-11-21 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredife25def2001-12-20 15:38:05 +00002121
2122 * Cleaned up way of mounting simple filesystems.
2123
2124 * fuse_main() helper function added
2125
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021262001-11-18 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie5183742005-02-02 11:14:04 +00002127
Miklos Szeredife25def2001-12-20 15:38:05 +00002128 * Optimized read/write operations, so that minimal copying of data
2129 is done
2130
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021312001-11-14 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredife25def2001-12-20 15:38:05 +00002132
2133 * Python bindings by Jeff Epler added
Miklos Szeredi838c14f2001-11-14 08:16:20 +00002134
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021352001-11-13 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi838c14f2001-11-14 08:16:20 +00002136
2137 * Fixed vfsmount reference leak in fuse_follow_link
2138
2139 * FS blocksize is set to PAGE_CACHE_SIZE, blksize attribute from
2140 userspace is ignored
2141
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021422001-11-09 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi838c14f2001-11-14 08:16:20 +00002143
Miklos Szeredife25def2001-12-20 15:38:05 +00002144 * Started ChangeLog