blob: f2e5d024f8e6ccea3aa16168f04dd4d4f7561389 [file] [log] [blame]
Matt Mower523a0592015-12-13 11:31:00 -060012015-05-22 Miklos Szeredi <miklos@szeredi.hu>
2
3 * Released 2.9.4
4
52015-05-22 Miklos Szeredi <miklos@szeredi.hu>
6
7 * libfuse: fix exec environment for mount and umount. Found by
8 Tavis Ormandy (CVE-2015-3202).
9
102015-02-26 Miklos Szeredi <miklos@szeredi.hu>
11
12 * libfuse: fix fuse_remove_signal_handlers() to properly restore
13 the default signal handler. Reported by: Chris Johnson
14
152014-07-21 Miklos Szeredi <miklos@szeredi.hu>
16
17 * libfuse: highlevel API: fix directory file handle passed to
18 ioctl() method. Reported by Eric Biggers
19
202014-07-15 Miklos Szeredi <miklos@szeredi.hu>
21
22 * libfuse: document deadlock avoidance for
23 fuse_notify_inval_entry() and fuse_notify_delete()
24
25 * fusermount, libfuse: send value as unsigned in "user_id=" and
26 "group_id=" options. Uids/gids larger than 2147483647 would
27 result in EINVAL when mounting the filesystem. This also needs a
28 fix in the kernel.
29
302014-03-26 Miklos Szeredi <miklos@szeredi.hu>
31
32 * Initilaize stat buffer passed to ->getattr() and ->fgetattr() to
33 zero in all cases. Reported by Daniel Iwan
34
352013-08-26 Miklos Szeredi <miklos@szeredi.hu>
36
37 * libfuse: Add missing includes. This allows compiling fuse with
38 musl. Patch by Daniel Thau
39
402013-07-01 Miklos Szeredi <miklos@szeredi.hu>
41
42 * Released 2.9.3
43
442013-06-20 Miklos Szeredi <miklos@szeredi.hu>
45
46 * libfuse: fix multiple close of device fd. Reported by Dan
47 Greenfield
48
492013-03-19 Miklos Szeredi <miklos@szeredi.hu>
50
51 * libfuse: fix thread cancel race. Exiting a worker my race with
52 cancelling that same worker. This caused a segmenation
53 fault. Reported and tested by Anatol Pomozov
54
552013-02-04 Miklos Szeredi <miklos@szeredi.hu>
56
57 * libfuse: fix crash in unlock_path(). Patch by Ratna Manoj
58
59 * libfuse: fix the 'remember' option. The lru list was not
60 initialized for the "/" path. This resulted in remove_node_lru()
61 crashing on LOOKUP-DOTDOT. Patch by Madan Valluri
62
63 * libfuse: configure: detect new util-linux
64
65 * libfuse: Use AC_CONFIG_HEADERS instead of AM_CONFIG_HEADER.
66 Patch by Anatol Pomozov
67
68 * libfuse: rename ./configure.in to ./configure.ac. Patch by
69 Anatol Pomozov
70
712012-10-01 Miklos Szeredi <miklos@szeredi.hu>
72
73 * Released 2.9.2
74
752012-10-01 Miklos Szeredi <miklos@szeredi.hu>
76
77 * Fix deadlock in libfuse. Running "svn update" on a fuse
78 filesystem could deadlock because of a bug in the way the paths
79 are locked. Reported by Kazuaki Anami
80
812012-08-23 Miklos Szeredi <miklos@szeredi.hu>
82
83 * Fix missing config.h in buffer.c. Reported by Matthew Gabeler-Lee
84
852012-08-14 Miklos Szeredi <miklos@szeredi.hu>
86
87 * Not unhashing the name in forget (commit on 2011-12-09) broke
88 the forget logic in a subtle way, resulting in "fuse internal
89 error: node NNN not found" and causing the filesystem daemon to
90 abort. Fix by incrementing the node refcount if nlookup goes from
91 zero to one. Reported by Kyle Lippincott
92
932012-08-13 Miklos Szeredi <miklos@szeredi.hu>
94
95 * Fix linking against GNU libiconv. Patch by Natanael Copa
96
972012-07-19 Miklos Szeredi <miklos@szeredi.hu>
98
99 * Released 2.9.1
100
1012012-07-19 Miklos Szeredi <miklos@szeredi.hu>
102
103 * Fix crash caused by freeing a stack address. Reported by Itay
104 Perl
105
1062012-07-04 Miklos Szeredi <miklos@szeredi.hu>
107
108 * Fix install of mount.fuse from out-of-tree build. Patch by
109 Olivier Blin
110
111 * Fix build with automake >= 1.12.1. Patch by Olivier Blin
112
1132012-04-24 Miklos Szeredi <miklos@szeredi.hu>
114
115 * Add fallocate operation. Only works on linux kernels 3.5 or
116 later. Patch by Anatol Pomozov
117
1182012-05-16 Miklos Szeredi <miklos@szeredi.hu>
119
120 * Linking to a library that uses threads requires the application
121 to be linked with -pthreads otherwise some pthread functions will
122 be linked to stubs in glibc. So move -pthread from Libs.private
123 to Libs in fuse.pc. Reported by Werner Fink
124
125 * Fix the compile command in the examples. Reported by Luciano
126 Dalle Ore
127
1282012-04-20 Miklos Szeredi <miklos@szeredi.hu>
129
130 * Released 2.9.0
131
1322012-04-20 Miklos Szeredi <miklos@szeredi.hu>
133
134 * Add missing fuse_fs_flock to fuse_versionscript
135
1362012-04-10 Miklos Szeredi <miklos@szeredi.hu>
137
138 * Check protocol version before sending notifications and return
139 -ENOSYS if a particular notification is not supported.
140
141 * Add 'flag_utime_omit_ok' flag to fuse_operations. If the
142 filesystem sets this flag then ->utimens() will receive UTIME_OMIT
143 and UTIME_NOW values as specified in utimensat(2).
144
1452012-01-27 Miklos Szeredi <miklos@szeredi.hu>
146
147 * Interpret octal escape codes in options. Requested by Jan
148 Engelhardt
149
1502012-01-26 Miklos Szeredi <miklos@szeredi.hu>
151
152 * Add man pages for fusermount, mount.fuse and ulockmgr_server.
153 Lifted from the Debian package. The man pages were written by
154 Daniel Baumann and Bastien Roucaries
155
1562012-01-13 Miklos Szeredi <miklos@szeredi.hu>
157
158 * Disable symbol versions on MacOSX. Patch by Anatol Pomozov
159
1602012-01-02 Miklos Szeredi <miklos@szeredi.hu>
161
162 * Remove unnecessary mutex unlock at the end of multithreaded
163 event loop.
164
1652011-12-09 Miklos Szeredi <miklos@szeredi.hu>
166
167 * Fix hang in wait_on_path(). Reported by Ville Silventoinen
168
169 * Don't unhash name in FORGET. This resulted in ENOENT being
170 returned for unlinked but still open files if the kernel sent a
171 FORGET request for the parent directory.
172
173 * Free request in fuse_reply_data().
174
1752011-12-08 Miklos Szeredi <miklos@szeredi.hu>
176
177 * Fix build if FUSE_NODE_SLAB is not defined. Patch by Emmanuel
178 Dreyfus
179
180 * Check for availability of utimensat() function. Patch by
181 Emmanuel Dreyfus
182
1832011-12-07 Miklos Szeredi <miklos@szeredi.hu>
184
185 * Add fuse_lowlevel_notify_delete() which tells the kernel that a
186 file or directory is deleted. Patch by John Muir
187
1882011-12-06 Miklos Szeredi <miklos@szeredi.hu>
189
190 * Update retrieve_reply() method
191
1922011-12-05 Miklos Szeredi <miklos@szeredi.hu>
193
194 * Low level API: lock argument of fuse_reply_lock should have a
195 'const' qualifier. Reported by Shachar Sharon
196
197 * Add support for ioctl on directories. Reported by Antonio SJ
198 Musumeci
199
2002011-10-13 Miklos Szeredi <miklos@szeredi.hu>
201
202 * Reply to request with ENOMEM in case of failure to allocate
203 request structure. Otherwise the task issuing the request will
204 just freeze up until the filesystem daemon is killed. Reported by
205 Stephan Kulow
206
2072011-09-23 Miklos Szeredi <miklos@szeredi.hu>
208
209 * Replace daemon() function with fork(). Patch by Anatol Pomozov
210
2112011-08-26 Miklos Szeredi <miklos@szeredi.hu>
212
213 * If configured with --disable-mtab then don't call mount(8) from
214 libfuse to update the mtab. Reported by: James Sierp
215
2162011-08-24 Miklos Szeredi <miklos@szeredi.hu>
217
218 * Use LRU list for cleaning up the cache if the "remember=T"
219 option was given. Patch by therealneworld@gmail.com
220
2212011-07-06 Miklos Szeredi <miklos@szeredi.hu>
222
223 * Add ->flock() operation to low and high level interfaces. This
224 fixes problems with emulating flock() with POSIX locking.
225 Reported by Sebastian Pipping. As with lock/setlk/getlk most
226 filesystems don't need to implement this, as the kernel takes care
227 of file locking. The only reason to implement locking operations
228 is for network filesystems which want file locking to work between
229 clients.
230
2312011-07-02 Sebastian Pipping <sebastian@pipping.org>
232
233 * Make xmp_utimens of examples "fusexmp" and "fusexmp_fh"
234 not follow symlinks as other layers do that already.
235
2362011-06-02 Miklos Szeredi <miklos@szeredi.hu>
237
238 * Add "remember" option. This works similar to "noforget" except
239 that eventually the node will be allowed to expire from the cache.
240 Patch by therealneworld@gmail.com
241
2422011-05-27 Miklos Szeredi <miklos@szeredi.hu>
243
244 * Check if splice/vmsplice are supported
245
2462011-05-26 Miklos Szeredi <miklos@szeredi.hu>
247
248 * Remove -lrt -ldl from fuse.pc for dynamic linking since
249 libfuse.so is already linked with these libraries. Reported by:
250 Nikolaus Rath
251
2522011-05-20 Miklos Szeredi <miklos@szeredi.hu>
253
254 * Cleaner build output. Patch by Reuben Hawkins
255
2562011-05-19 Miklos Szeredi <miklos@szeredi.hu>
257
258 * Disable splice by default, add "splice_read", "splice_write" and
259 "splice_move" options. Keep the "no_splice_*" variants, which can
260 disable splice even if the filesystem explicitly enables it.
261
2622011-04-15 Max Krasnyansky <maxk@kernel.org>
263 * Added support for "auto_unmount" option which unmounts the
264 filesystem automatically on process exit (or crash).
265
2662011-03-30 Miklos Szeredi <miklos@szeredi.hu>
267
268 * Patches by Laszlo Papp fixing various issues found by the
269 Coverity checker
270
2712011-03-11 Miklos Szeredi <miklos@szeredi.hu>
272
273 * In case of failure to add to /etc/mtab don't umount. Reported
274 by Marc Deslauriers
275
2762011-02-02 Miklos Szeredi <miklos@szeredi.hu>
277
278 * libfuse: In fuse_session_loop_mt() don't pause when exiting the
279 worker threads. The pause() was added in 2.2.1 to prevent
280 segfault on pthread_cancel() on an exited, detached thread. Now
281 worker threads are not detached and pthread_cancel() should work
282 fine even after the thread exited. Reported by Boris Protopopov
283
2842011-01-31 Miklos Szeredi <miklos@szeredi.hu>
285
286 * fusermount: chdir to / before performing mount/umount
287
288 * fusermount: only allow mount and umount if util-linux supports
289 --no-canonicalize
290
2912010-12-16 Miklos Szeredi <miklos@szeredi.hu>
292
293 * Highlevel lib: allow hash tables to shrink
294
295 * Highlevel lib: add slab allocation for node cache. This will
296 allow the memory used by the filesystem to grow and shrink
297 depending on how many inodes are currently cached.
298
2992010-12-13 Miklos Szeredi <miklos@szeredi.hu>
300
301 * Highlevel lib: use dynamically resized hash table for looking up
302 by name and node ID.
303
3042010-12-07 Miklos Szeredi <miklos@szeredi.hu>
305
306 * Allow batching of forget requests. This allows forget requests
307 to be processed faster and doesn't require a modification to fuse
308 filesystems. Reported by Terje Malmedal
309
310 * Add ->forget_multi() operation to the lowlevel API. The
311 filesystem may implement this to process multiple forget requests
312 in one call
313
314 * Fix the ambiguity of ioctl ABI on the kernel/userspace boundary
315 for 32bit vs. 64bit userspace
316
3172010-11-10 Miklos Szeredi <miklos@szeredi.hu>
318
319 * Add new write_buf() method to the highlevel API. Similarly to
320 the lowlevel write_buf() method, this allows implementing zero
321 copy writes.
322
323 * Add a new read_buf() method to the highlevel API. This allows
324 returning a generic buffer from the read method, which in turn
325 allows zero copy reads.
326
327 * In fusexmp_fh implement the ->read_buf() and ->write_buf()
328 methods. Leave the ->read() and ->write() implementations for
329 reference, even though they are not necessary.
330
3312010-11-08 Miklos Szeredi <miklos@szeredi.hu>
332
333 * Fix check for read-only fs in mtab update
334
335 * Open /dev/null for write instead of read for redirecting stdout
336 and stderr
337
338 * If umount(8) supports --fake and --no-canonicalize (util-linux-ng
339 version 2.18 or later), and umount(2) supports the
340 UMOUNT_NOFOLLOW flag (linux kernel version 2.6.35 or later) then,
341 "fusermount -u" will call the umount(2) system call and use
342 "umount --fake ..." to update /etc/mtab
343
344 * Added --disable-legacy-umount option to configure. This
345 disables the runtime checking of umount(8) version. When built
346 with this option then "fusermount -u" will fail if umount(8)
347 doesn't support the --fake and --no-canonicalize options.
348
349 * Fix fuse_buf_copy() if already at the end of the buffers
350
351 * Add new ->write_buf() method to low level interface. This
352 allows passig a generic buffer, either containing a memory buffer
353 or a file descriptor. This allows implementing zero copy writes.
354
355 * Add fuse_session_receive_buf() and fuse_session_process_buf()
356 which may be used in event loop implementations to replace
357 fuse_chan_recv() and fuse_session_process() respectively.
358
359 * Remove unnecessary restoring of current working directory in
360 "fusermount -u"
361
362 * Add ctx->pid to debug output
363
364 * Fix st_nlink value in high level lib if file is unlinked but
365 still open
366
367 * libfuse: add store request. Request data to be stored in the
368 kernel buffers for a given inode.
369
370 * libfuse: add retrieve request. Retrieve data stored in the
371 kernel buffers for a given inode.
372
3732010-10-14 Miklos Szeredi <miklos@szeredi.hu>
374
375 * Use LTLIBICONV when linking libfuse. This fixes building against
376 uclibc + libiconv. Patch by Natanael Copa
377
3782010-10-05 Miklos Szeredi <miklos@szeredi.hu>
379
380 * Add missing argument check in ulockmgr.c to prevent calling
381 ulockmgr_server with illegal arguments. This would cause an ever
382 growing list of ulockmgr_server processes with an endless list of
383 open files which finally exceeds the open file handle limit.
384 Patch by Markus Ammer
385
3862010-09-28 Miklos Szeredi <miklos@szeredi.hu>
387
388 * Fix ambiguous symbol version for fuse_chan_new.
389 fuse_versionscript included fuse_chan_new in both FUSE_2.4 and
390 FUSE_2.6. Remove the FUSE_2.4, which is invalid.
391
3922010-09-28 Miklos Szeredi <miklos@szeredi.hu>
393
394 * Fix option escaping for fusermount. If the "fsname=" option
395 contained a comma then the option parser in fusermount was
396 confused (Novell bugzilla #641480). Fix by escaping commas when
397 passing them over to fusermount. Reported by Jan Engelhardt
398
3992010-08-27 Miklos Szeredi <miklos@szeredi.hu>
400
401 * Add NetBSD support. Patch from Emmanuel Dreyfus
402
4032010-07-12 Miklos Szeredi <miklos@szeredi.hu>
404
405 * libfuse: add buffer interface. Add a generic buffer interface
406 for use with I/O. Buffer vectors are supplied and each buffer in
407 the vector may be a memory pointer or a file descriptor.
408
409 * The fuse_reply_fd() interface is converted to using buffers.
410
4112010-06-23 Miklos Szeredi <miklos@szeredi.hu>
412
413 * Make the number of max background requests and congestion
414 threshold tunable. New options are "max_background" and
415 "congestion_threshold". Only effective on linux kernel versions
416 2.6.32 or greater. Patch by Csaba Henk
417
4182010-06-17 Miklos Szeredi <miklos@szeredi.hu>
419
420 * Add fuse_reply_fd() reply function to the low level interface.
421 On linux version 2.6.35 or greater this will use splice() to move
422 data directly from a file descriptor to the fuse device without
423 needing to go though a userspace buffer. With the
424 FUSE_REPLY_FD_MOVE flag the kernel will attempt to move the data
425 directly into the filesystem's cache. On earlier kernels it will
426 fall back to an intermediate buffer. The options
427 "no_splice_write" and "no_splice_move" can be used to disable
428 splicing and moving respectively.
429
4302010-06-15 Miklos Szeredi <miklos@szeredi.hu>
431
432 * Fix out-of-source build. Patch by Jörg Faschingbauer
433
434 * Add a "nopath" option and flag, indicating that path argument
435 need not be calculated for the following operations: read, write,
436 flush, release, fsync, readdir, releasedir, fsyncdir, ftruncate,
437 fgetattr, lock, ioctl and poll.
438
4392010-05-10 Miklos Szeredi <miklos@szeredi.hu>
440
441 * Remove "chmod root" from install of fusermount. Reported by
442 Lucas C. Villa Real
443
4442010-04-26 Miklos Szeredi <miklos@szeredi.hu>
445
446 * Released 2.8.4
447
4482010-04-26 Miklos Szeredi <miklos@szeredi.hu>
449
450 * Fix checking for symlinks in umount from /tmp. Reported by Al
451 Viro
452
453 * Fix umounting if /tmp is a symlink. Reported by Franco Broi
454
4552010-02-18 Miklos Szeredi <miklos@szeredi.hu>
456
457 * Fix definition of FUSE_OPT_END for C++. Reported by Tim
458 Bruylants
459
4602010-02-03 Miklos Szeredi <miklos@szeredi.hu>
461
462 * Fix stack alignment for clone()
463
4642010-02-01 Miklos Szeredi <miklos@szeredi.hu>
465
466 * Released 2.8.3
467
4682010-02-01 Miklos Szeredi <miklos@szeredi.hu>
469
470 * Using "--no-canonicalize" with umount(8) conflicts with the race
471 fix, sinceit assumes the supplied path is absolute, while the race
472 fix relies on the path being relative to the current directory.
473 Reported by Tom Rindborg
474
4752010-01-26 Miklos Szeredi <miklos@szeredi.hu>
476
477 * Released 2.8.2
478
4792010-01-21 Miklos Szeredi <miklos@szeredi.hu>
480
481 * Fix race if two "fusermount -u" instances are run in parallel.
482 Reported by Dan Rosenberg
483
484 * Make sure that the path to be unmounted doesn't refer to a
485 symlink
486
4872010-01-14 Miklos Szeredi <miklos@szeredi.hu>
488
489 * Fix compile error on FreeBSD. Patch by Jay Sullivan
490
4912009-12-17 Miklos Szeredi <miklos@szeredi.hu>
492
493 * Use '--no-canonicalize' option of mount(8) (available in
494 util-linux-ng version 2.17 or greater) to avoid calling
495 readling(2) on the newly mounted filesystem before the mount
496 procedure is finished. This has caused a deadlock if "audit" was
497 enabled in the kernel. Also use '--no-canonicalize' for umount to
498 avoid touching the mounted filesystem.
499
5002009-09-11 Miklos Szeredi <miklos@szeredi.hu>
501
502 * Released 2.8.1
503
5042009-08-25 Miklos Szeredi <miklos@szeredi.hu>
505
506 * Fix missing versioned symbol fuse_get_context@FUSE_2.2
507
5082009-08-18 Miklos Szeredi <miklos@szeredi.hu>
509
510 * Released 2.8.0
511
5122009-08-18 Miklos Szeredi <miklos@szeredi.hu>
513
514 * Add missing fuse_session_data to versionscript
515
516 * Make sure all global symbols are prefixed with "fuse_" or "cuse_"
517
5182009-07-16 Miklos Szeredi <miklos@szeredi.hu>
519
520 * Clarify how the protocol version should be negotiated between
521 kernel and userspace. Notably libfuse didn't correctly handle the
522 case when the supported major versions didn't match
523
524 * Add missing pthread link for libulockmgr. Patch by Petr Salinger
525
5262009-07-02 Miklos Szeredi <miklos@szeredi.hu>
527
528 * The context is extended with a 'umask' field. The umask is sent
529 for mknod, mkdir and create requests by linux kernel version
530 2.6.31 or later, otherwise the umask is set to zero. Also
531 introduce a new feature flag: FUSE_CAP_DONT_MASK. If the kernel
532 supports this feature, then this flag will be set in conn->capable
533 in the ->init() method. If the filesystem sets this flag in in
534 conn->want, then the create modes will not be masked.
535
536 * Add low level interfaces for lookup cache and attribute
537 invalidation. This feature is available in linux kernels 2.6.31
538 or later. Patch by John Muir
539
540 * Kernel interface version is now 7.12
541
542 * fusermount: Do not silently ignore command line arguments.
543 Patch by Sebastian Harl
544
5452009-06-19 Miklos Szeredi <miklos@szeredi.hu>
546
547 * Released 2.8.0-pre3
548
5492009-06-19 Miklos Szeredi <miklos@szeredi.hu>
550
551 * Add fuse_getgroups (high level lib) and fuse_req_getgroups (low
552 level lib) functions to query the supplementary group IDs for the
553 current request. Currently this is implemented on Linux by
554 reading from the /proc filesystem.
555
5562009-06-18 Miklos Szeredi <miklos@szeredi.hu>
557
558 * Add "noforget" option to high level lib to prevent ESTALE errors
559 on NFS exported filesystems. This result in paths being cached
560 forever, resulting in ever growing memory usage. Use with care.
561
562 * Add "no_remote_lock" option to disable remote file locking even
563 if the filesystem implements it. With this option locking
564 primitives (flock, lockf, fcntl(F_SETLK)) will still work, but
565 will ignore remotely locked files.
566
567 * CUSE patches from Tejun Heo:
568
569 * Unrestricted ioctl support left some debris. Clean them up:
570 o No reason to pass around pointer to flags. Pass flags directly.
571 o Clean up comment and prototype parameter names.
572 o fuse_lib_ioctl() didn't reply when get_path() failed. Fix it.
573 o Remove unused variables {in|out}_iov from fuse_lib_ioctl().
574
575 * Add fuse_reply_ioctl_iov()
576
577 * Move fuse_session, fuse_req and fuse_ll definitions to fuse_i.h
578 and make send_reply_iov() and fuse_setup_common() global (also in
579 fuse_i.h). These will be used by CUSE support.
580
581 * Restructure fuse_ll_process()
582
583 * Implement libfuse side of CUSE support. CUSE uses subset of FUSE
584 operations as dir operations don't make sense for CUSE where one
585 instance implements single character device.
586
587 CUSE support comes with its own cuse_lowevel_ops and related
588 initialization and helper functions. Except for initialization, it
589 usage is basically identical to FUSE.
590
591 This patch also adds example/cusexmp.c which can create a character
592 device with name and device number specified on command line. The
593 created device itself is pretty boring. It's a bit bucket supporting
594 read, write and access via ioctl.
595
5962009-06-16 Miklos Szeredi <miklos@szeredi.hu>
597
598 * Add missing fuse_reply_bmap to versionscript. Debian
599 Bug#531329. Reported by Goswin Brederlow
600
6012009-05-27 Miklos Szeredi <miklos@szeredi.hu>
602
603 * Don't call forget_node() if the lookup was negative and write()
604 for the reply returned ENOENT. Reported by John Haxby
605
6062009-05-25 Miklos Szeredi <miklos@szeredi.hu>
607
608 * Add FUSE_CAP_EXPORT_SUPPORT to fuse_common.h
609
6102009-05-08 Miklos Szeredi <miklos@szeredi.hu>
611
612 * Fix missing newlines in some printfs
613
614 * Fix 'make install-strip'. Reported by Dominick Layfield
615
6162009-01-05 Miklos Szeredi <miklos@szeredi.hu>
617
618 * Released 2.8.0-pre2
619
6202008-12-08 Miklos Szeredi <miklos@szeredi.hu>
621
622 * Implement poll support. Patch by Tejun Heo
623
624 * Add missing setattr flags to <fuse_lowlevel.h>.
625
626 * Only pass valid flags to ->setattr().
627
6282008-12-05 Miklos Szeredi <miklos@szeredi.hu>
629
630 * Implement ioctl support. On high level interface only
631 "restricted" ioctls are supported (which are defined with the
632 _IO(), _IOR(), _IOW() or _IOWR() macros). Unrestricted ioctls
633 will only be allwed to CUSE (Character Device in Userspace)
634 servers. Patch by Tejun Heo
635
6362008-11-28 Miklos Szeredi <miklos@szeredi.hu>
637
638 * If open sets fi->nonseekable, libfuse will tell the kernel that
639 the file is not seekable. Patch by Tejun Heo
640
6412008-11-19 Miklos Szeredi <miklos@szeredi.hu>
642
643 * lowlevel lib: fix deadlock if fuse_reply_* is called from the
644 interrupt handling function. Reported by Tero Marttila
645
6462008-10-16 Miklos Szeredi <miklos@szeredi.hu>
647
648 * Allow commas in options to be escaped with a backslash
649
650 * Add new function: fuse_opt_add_opt_escaped()
651
652 * Add missing fuse_reply_bmap() to the version script
653
6542008-10-14 Miklos Szeredi <miklos@szeredi.hu>
655
656 * Pass current file flags to read and write operations
657
6582008-07-24 Miklos Szeredi <miklos@szeredi.hu>
659
660 * Clean up debug output in highlevel lib
661
6622008-07-10 Miklos Szeredi <miklos@szeredi.hu>
663
664 * Released 2.8.0-pre1
665
6662008-06-27 Miklos Szeredi <miklos@szeredi.hu>
667
668 * Fix handling of (no)suid and (no)dev options if filesystem is
669 mounted from /etc/fstab or via mount(8). Reported by Jan Ondrej.
670
671 * Skip calling mount(8) if /etc/mtab doesn't exist or if it's on a
672 read-only filesystem. This works around issues with certain mount
673 implementations. Reported by Szabolcs Szakacsits.
674
6752008-06-16 Miklos Szeredi <miklos@szeredi.hu>
676
677 * Remove fuse kernel module sources. Linux 2.6.27 will support
678 NFS exporting.
679
6802008-06-10 Miklos Szeredi <miklos@szeredi.hu>
681
682 * Fix theoretical infinite loops in libfuse. Reported by Szabolcs
683 Szakacsits
684
685 * Fix missing <sys/param.h> include for PATH_MAX. Reported by
686 Szabolcs Szakacsits
687
6882008-05-23 Miklos Szeredi <miklos@szeredi.hu>
689
690 * Fix mounting over symlink. Reported by Szabolcs Szakacsits
691
6922008-05-09 Miklos Szeredi <miklos@szeredi.hu>
693
694 * Don't allow bigger than 4kB writes by default on 2.6.26 and
695 later kernels, so that filesystems not expecting this are not
696 broken on a kernel upgrade. Provide a 'big_writes' mount option
697 to enable this feature. In future API revisions this may become
698 the default.
699
7002008-04-09 Miklos Szeredi <miklos@szeredi.hu>
701
702 * Update warning message for missing newline at end of fuse.conf
703
704 * Update debug message for successful operation to not include the
705 string "error:"
706
7072008-04-08 Miklos Szeredi <miklos@szeredi.hu>
708
709 * Update error message for missing mountpoint parameter. Reported
710 by Allen Pulsifer
711
7122008-04-04 Miklos Szeredi <miklos@szeredi.hu>
713
714 * Print library version information to debug output
715
716 * Highlevel lib: don't limit paths to 4095 characters
717
7182008-03-25 Miklos Szeredi <miklos@szeredi.hu>
719
720 * Fix memory leaks on mount. Patch by Szabolcs Szakacsits
721
7222008-03-19 Miklos Szeredi <miklos@szeredi.hu>
723
724 * Fix missing pthread_mutex_destroy in error path of
725 fuse_lib_opendir(). Patch by Szabolcs Szakacsits
726
7272008-03-07 Miklos Szeredi <miklos@szeredi.hu>
728
729 * Add queuing on contention to per-node lock algorithm, to avoid
730 starvation.
731
732 * Only enable cancelation when reading a request, otherwise
733 cancellation could happen with a mutex held, which could hang the
734 process on umount
735
7362008-02-08 Miklos Szeredi <miklos@szeredi.hu>
737
738 * Block SIGCHLD when executing mount and umount
739
740 * fusexmp_fh: avoid unnecessary seeking in readdir
741
742 * Update kernel interface to 7.9:
743
744 * Support receiving file handle from kernel in GETATTR request
745
746 * Allow operations with a NULL path argument, if the filesystem
747 supports it
748
749 * Add support atomic open(O_TRUNC)
750
751 * Support the st_blksize field in struct stat
752
753 * If the "FUSE_THREAD_STACK" environment is set, initialize the
754 stack size of threads by this value. Patch by Florin Malita
755
756 * Add per-node locking, instead of a global tree lock to protect
757 the path from changing during operations. Original patch by
758 Rodrigo Castro
759
7602008-02-03 Csaba Henk <csaba.henk@creo.hu>
761
762 * lib/mount_bsd.c:
763 - string formatting fixes
764 - exit if mounting has failed
765 (in FreeBSD a mount failure is not critical per se, as the daemon
766 still could be mounted externally, but waiting for such an event
767 is more confusing than fruitful)
768 - ditch the kvm(8) stuff and simply use forced unmount which just
769 won't block
770 - prettify option specifications
771 - add "-onosync_unmount" kernel option
772
7732008-01-07 Csaba Henk <csaba.henk@creo.hu>
774
775 * lib/mount_bsd.c:
776 - refine device closing in a race-free way
777 - add support for "-osubtype" on FreeBSD
778
779 * makeconf.sh: make it work under FreeBSD
780
7812008-01-03 Csaba Henk <csaba.henk@creo.hu>
782
783 * lib/mount_bsd.c: close device before unmount
784 (cf. lib/mount.c rev. 1.43) and fix some warnings
785
7862007-12-23 Miklos Szeredi <miklos@szeredi.hu>
787
788 * Fix './configure --disable-static'. Patch from Ismail Dönmez
789
7902007-12-17 Miklos Szeredi <miklos@szeredi.hu>
791
792 * Released 2.7.2
793
7942007-12-12 Miklos Szeredi <miklos@szeredi.hu>
795
796 * Fix kernel module compile for 2.6.24
797
798 * Invalidate attributes of parent directory after create(), since
799 the modification time changes. Invalidate attributes on rename,
800 since some filesystems may update st_ctime. Reported by Szabolcs
801 Szakacsits
802
803 * Fix NFS exporting to handle 64bit node IDs
804
805 * Disable old symbol versions if __UCLIBC__ is defined. If a
806 symbol in a library has multiple versions, the runtime linker in
807 uClibc seems to randomly choose between them.
808
809 * Remove erroneous 'fuse_opt_insert_arg@FUSE_2_5' from
810 fuse_version_script. fuse_opt_free_args() was added in fuse-2.6.
811
812 * Close fuse device file descriptor before calling umount(),
813 preventing a deadlock when umount is synchronous. Reported by
814 Szabolcs Szakacsits
815
8162007-11-12 Miklos Szeredi <miklos@szeredi.hu>
817
818 * 'fusermount -u' did not umount the filesystem if /etc/mtab was a
819 symlink. This bug was introduced in 2.7.1 by "Don't call
820 /bin/[u]mount if /etc/mtab is a symlink". Found by robertsong.
821
8222007-10-16 Miklos Szeredi <miklos@szeredi.hu>
823
824 * Released 2.7.1
825
8262007-10-16 Miklos Szeredi <miklos@szeredi.hu>
827
828 * Clarify licence version to be "LGPLv2" for the library
829
830 * kernel fixes:
831
832 * After mount set nlink attribute for the root inode to 1
833
834 * Fix wake up of task waiting for a reserved request
835
836 * Fix allowing setattr, listxattr and statfs for other users
837
8382007-09-18 Miklos Szeredi <miklos@szeredi.hu>
839
840 * Add missing context initialization in fuse_fs_chmod(). Bug
841 found by "iohead"
842
843 * Fix kernel module compilation for 2.6.23. Based on patch by
844 Marian Marinov
845
8462007-09-04 Philippe Elie <phil.el@wanadoo.fr>
847
848 * lib/fuse_lowlevel.c: fix a fuse_req leak in do_forget()
849
8502007-07-31 Miklos Szeredi <miklos@szeredi.hu>
851
852 * Work around hotplug issue, that it calls filesystem with file
853 descriptors 0, 1 and 2 not open. Tracked down by Leif Johnson
854
8552007-07-25 Miklos Szeredi <miklos@szeredi.hu>
856
857 * Don't call /bin/[u]mount if /etc/mtab is a symlink. Reported by
858 Tomas M
859
860 * Also don't touch /etc/mtab if it is within the mounted
861 filesystem. Suggested by Jeffrey Law
862
8632007-07-12 Miklos Szeredi <miklos@szeredi.hu>
864
865 * Reset args->argc in fuse_opt_free_args(). Patch by Lucas
866 C. Villa Real
867
8682007-07-02 Miklos Szeredi <miklos@szeredi.hu>
869
870 * Released 2.7.0
871
8722007-07-02 Miklos Szeredi <miklos@szeredi.hu>
873
874 * Accept a NULL "op" for fuse_main(), etc. This is useful if
875 filesystem is only invoking fuse to print a help message, or
876 version. Fixes RedHat bugzilla #217343
877
8782007-06-22 Miklos Szeredi <miklos@szeredi.hu>
879
880 * lib: fix locking when loading a filesystem module
881
8822007-06-21 Miklos Szeredi <miklos@szeredi.hu>
883
884 * Add fs subtype support to mount.fuse
885
8862007-06-20 Miklos Szeredi <miklos@szeredi.hu>
887
888 * Add fs subtype support to libfuse and fusermount
889
8902007-06-19 Miklos Szeredi <miklos@szeredi.hu>
891
892 * kernel: sync with mainline (2.6.22)
893
8942007-06-18 Miklos Szeredi <miklos@szeredi.hu>
895
896 * Send debug output to stderr instead of stdout. Patch by Jan
897 Engelhardt
898
8992007-06-03 Miklos Szeredi <miklos@szeredi.hu>
900
901 * libulockmgr: Work around a kernel bug in recv(), causing it to
902 sometimes return zero even if data was available on the socket.
903
9042007-05-29 Miklos Szeredi <miklos@szeredi.hu>
905
906 * lib: optimization: store parent pointer in node instead of
907 parent id
908
9092007-05-25 Miklos Szeredi <miklos@szeredi.hu>
910
911 * lib: don't create new thread for each FORGET request. FORGET
912 messages sometimes caused so many threads to be created, that
913 process virtual memory space ran out. Reported by Chris AtLee
914
9152007-05-24 Miklos Szeredi <miklos@szeredi.hu>
916
917 * lib: fix memory leak on thread creation failure in multithreaded
918 event loop. Found by Chris AtLee
919
9202007-05-23 Miklos Szeredi <miklos@szeredi.hu>
921
922 * lowlevel lib: add fuse_reply_iov function, which is similar to
923 fuse_reply_buf, but accepts a vector of buffers. Patch by Roger
924 Willcocks
925
9262007-05-21 Miklos Szeredi <miklos@szeredi.hu>
927
928 * Fix Oops or error if a regular file is created with mknod(2) on
929 a fuse filesystem. Kernels 2.6.18 onward are affected. Thanks to
930 J. Cameijo Cerdeira for the report
931
9322007-05-11 Csaba Henk <csaba.henk@creo.hu>
933
934 * libfuse: fix return value of fuse_loop()/fuse_loop_mt().
935 Error reported by Csaba Henk, fix by Miklos Szeredi
936
937 * libfuse: fix unlock in flush
938
939 * libfuse: do unlocking on RELEASE+FLUSH
940
9412007-05-03 Miklos Szeredi <miklos@szeredi.hu>
942
943 * Released 2.7.0-rc1
944
9452007-05-02 Miklos Szeredi <miklos@szeredi.hu>
946
947 * kernel: sync with mainline:
948
949 * Use invalidate_mapping_pages() if available
950
951 * Fix BUG when invalid file type is supplied in mount. Patch by
952 Timo Savola
953
9542007-04-27 Miklos Szeredi <miklos@szeredi.hu>
955
956 * libfuse: call umount(8) directly instead of fusermount if
957 possible
958
959 * Clean up init script, make it LSB compliant
960
9612007-04-26 Miklos Szeredi <miklos@szeredi.hu>
962
963 * In multithreaded loop, use a semaphore instead of SIGHUP to wake
964 up the main thread on umount. This is more elegant, and works
965 even if signals are blocked.
966
9672007-04-25 Miklos Szeredi <miklos@szeredi.hu>
968
969 * Improve mounting support in libfuse:
970 - check non-empty mountpoint
971 - only fall back to fusermount when necessary
972
9732007-04-23 Miklos Szeredi <miklos@szeredi.hu>
974
975 * Don't chdir to "/" in foreground mode, it causes more trouble
976 than it's worth
977
9782007-04-18 Miklos Szeredi <miklos@szeredi.hu>
979
980 * Replace utils/mount.fuse "sh" script with a "C" program
981
9822007-04-15 Miklos Szeredi <miklos@szeredi.hu>
983
984 * Add -lulockmgr to compilation comment in fusexmp_fh.c
985
9862007-04-05 Miklos Szeredi <miklos@szeredi.hu>
987
988 * Check for iconv. Patch by Csaba Henk
989
990 * Add direct umounting
991
992 * Use "fusectl" as the device for the fusectl filesystem. Debian
993 Bug#417945. Reported by Laurent Bonnaud
994
9952007-04-01 Csaba Henk <csaba.henk@creo.hu>
996
997 * Fix some FreeBSD related macros.
998
9992007-03-30 Miklos Szeredi <miklos@szeredi.hu>
1000
1001 * Add support for direct mounting by libfuse. Fall back on
1002 calling fusermount if it doesn't work
1003
10042007-03-14 Miklos Szeredi <miklos@szeredi.hu>
1005
1006 * Released 2.7.0-pre1
1007
10082007-03-05 Miklos Szeredi <miklos@szeredi.hu>
1009
1010 * Correctly handle O_APPEND in direct IO mode. Reported by Greg
1011 Bruno
1012
1013 * mount.fuse should use /bin/bash. Debian Bug#413403. Reported
1014 by Thomas Weinbrenner
1015
10162007-02-26 Miklos Szeredi <miklos@szeredi.hu>
1017
1018 * Fix detection of installed fuse in init script. Reported and
1019 fix suggested by Davide Canova
1020
10212007-02-05 Miklos Szeredi <miklos@szeredi.hu>
1022
1023 * Fix 2.6.9 RHEL kernels, which have compatibility mutex.h, but
1024 don't define mutex_destroy(), bummer. Patch from Phil Schwan
1025
10262007-02-04 Miklos Szeredi <miklos@szeredi.hu>
1027
1028 * Compile fuseblk for kernels which don't have an option to turn
1029 off the block layer (CONFIG_BLOCK). Reported by Szakacsits
1030 Szabolcs
1031
10322007-02-03 Miklos Szeredi <miklos@szeredi.hu>
1033
1034 * Add filesystem stacking support to high level API. Filesystem
1035 modules can be built into libfuse or loaded from shared object
1036 (.so) files
1037
1038 * Add 'subdir' and 'iconv' built in modules
1039
1040 * lib/fuse.c: Fix locking for the reply code in create and open
1041
10422007-02-02 Miklos Szeredi <miklos@szeredi.hu>
1043
1044 * kernel: make it compile on "strange" kernels which have emulated
1045 mutexes via <linux/mutex.h> but no i_mutex. Reported by Tomasz
1046 Mateja
1047
10482007-01-28 Miklos Szeredi <miklos@szeredi.hu>
1049
1050 * kernel: fix BUG in control filesystem if it is umounted and
1051 mounted again, while some fuse filesystems are present.
1052 Bugreport from Florent Mertens
1053
1054 * kernel: sync with mainline, support 2.6.20
1055
10562007-01-22 Miklos Szeredi <miklos@szeredi.hu>
1057
1058 * lib/Makefile.am: actually link libfuse against libfuse_libs
1059
10602007-01-19 Miklos Szeredi <miklos@szeredi.hu>
1061
1062 * Build fix for 2.6.16 vanila and 2.6.15 FC5 kernels. Patch from
1063 Ian Abbott
1064
10652007-01-18 Miklos Szeredi <miklos@szeredi.hu>
1066
1067 * Fix abort in fuse_new() compatibility API for opts == NULL case.
1068 Novell bugzilla #233870. Patch from Takashi Iwai.
1069
10702007-01-13 Miklos Szeredi <miklos@szeredi.hu>
1071
1072 * Fix option parsing in mount.fuse. Patch from Jens M. Noedler
1073
10742007-01-02 Miklos Szeredi <miklos@szeredi.hu>
1075
1076 * Fix unaligned access in file desctriptor passing in libfuse,
1077 fusermount and ulockmgr. Debian bug ID: 404904. Reported and
1078 tested by Sebastian Fontius
1079
10802006-12-16 Miklos Szeredi <miklos@szeredi.hu>
1081
1082 * kernel: don't keep unreferenced inodes in the icache.
1083
10842006-12-15 Miklos Szeredi <miklos@szeredi.hu>
1085
1086 * fusermount: Fix detection of fuseblk. Reported by Szakacsits
1087 Szabolcs
1088
1089 * lib: Fix use after free in fuse_flush(). Reported by Ron
1090 Lindman
1091
10922006-12-10 Miklos Szeredi <miklos@szeredi.hu>
1093
1094 * mount.fuse: add "setuid=USER" option which does a "su - USER"
1095 for the filesystem
1096
1097 * fusermount: use "/bin/mount -f" to add entry to /etc/mtab, and
1098 "/bin/umount" to remove entry from /etc/mtab. This gets rid of
1099 the ugly code dealing with mtab, as well as a possible race
1100 between fusermount and mount trying to modify /etc/mtab at the
1101 same time
1102
1103 * Fix "buffer size too small: 4" warning for users of the
1104 fuse_loop_mt_proc() function.
1105
11062006-12-04 Miklos Szeredi <miklos@szeredi.hu>
1107
1108 * Fix warnings with gcc-4.1 on 64bit archs. Report from
1109 Harshavardhana
1110
1111 * Add extra warning options, and fix resulting warnings
1112
1113 * Really fix fuse_teardown problem
1114
11152006-12-02 Miklos Szeredi <miklos@szeredi.hu>
1116
1117 * Add -lrt to fuse.pc (if needed) to fix static linking against
1118 libfuse. Reported by Szakacsits Szabolcs
1119
11202006-12-01 Miklos Szeredi <miklos@szeredi.hu>
1121
1122 * Released 2.6.1
1123
11242006-11-30 Miklos Szeredi <miklos@szeredi.hu>
1125
1126 * Fix API version 21 and 22 compatibility for fuse_teardown.
1127 Reported by Bgs
1128
11292006-11-29 Miklos Szeredi <miklos@szeredi.hu>
1130
1131 * fusermount: Print a more helpful message in case the kernel
1132 doesn't support the 'fuseblk' filesystem type. This has been
1133 biting ntfs-3g users. Reported by Yura Pakhuchiy
1134
1135 * kernel: fix build problem for "make -C ...". Reported by
1136 Stephen Bryant
1137
11382006-11-19 Miklos Szeredi <miklos@szeredi.hu>
1139
1140 * Fix bug in certain error paths of lookup routines. The request
1141 object was reused for sending FORGET, which is illegal. This bug
1142 could cause an Oops in linux-2.6.18 or in fuse-2.6.0, and might
1143 silently corrupt memory in earlier versions. Report and test
1144 program by Russ Cox
1145
11462006-11-11 Miklos Szeredi <miklos@szeredi.hu>
1147
1148 * Print an error if an incompatible kernel interface version is
1149 detected in INIT. This will only show if filesystem is started
1150 with -d or -f
1151
1152 * Fix order of fuse_destroy()/fuse_unmount() in error cleanup of
1153 fuse_setup_common(). Reported by Szakacsits Szabolcs
1154
11552006-11-06 Miklos Szeredi <miklos@szeredi.hu>
1156
1157 * Fix recursive locking in fuse_create(). Thanks to Takuya
1158 Ishibashi for the bug report
1159
11602006-10-28 Miklos Szeredi <miklos@szeredi.hu>
1161
1162 * Fix automake problem. Patch from Nix
1163
11642006-10-26 Miklos Szeredi <miklos@szeredi.hu>
1165
1166 * Fix mount.fuse to use /bin/sh instead of /bin/bash, which is not
1167 always available on embedded systems. Patch from Paul Smith
1168
1169 * Fix util/Makefile.am, so that failure to run update-rc.d or
1170 device creation doesn't cause make to fail. Reported by Paul
1171 Smith
1172
11732006-10-21 Miklos Szeredi <miklos@szeredi.hu>
1174
1175 * Released 2.6.0
1176
11772006-10-18 Miklos Szeredi <miklos@szeredi.hu>
1178
1179 * fusermount: don't try to create a lock file if /etc/mtab is a
1180 symlink. Report and patch from Alexei Sheplyakov (debian bug
1181 #393693)
1182
11832006-10-17 Miklos Szeredi <miklos@szeredi.hu>
1184
1185 * Minor changes, sync with mainline tree
1186
11872006-10-16 Miklos Szeredi <miklos@szeredi.hu>
1188
1189 * Released 2.6.0-rc3
1190
11912006-10-15 Miklos Szeredi <miklos@szeredi.hu>
1192
1193 * kernel: cleanups
1194
11952006-10-13 Miklos Szeredi <miklos@szeredi.hu>
1196
1197 * kernel: Fix compilation on patched 2.6.18 (fc6) and 2.6.19.
1198 Report from David Shaw
1199
1200 * lib: Fix lost error on renaming a file. Report from David Shaw
1201
1202 * lib: Fix lost error on hiding open files (renaming to
1203 .fuse_hiddenXXXX)
1204
1205 * kernel: Fix a rare hang on SMP/32bit on heavy filesystem
1206 activity. The cause of the bug was that some calls to
1207 i_size_write() were not protected by a lock, and hence
1208 i_size_seqcount could become corrupted. This caused subsequent
1209 calls to i_size_read() to spin forever. This is a long standing
1210 bug was probably introduced in version 2.2, and thought to be
1211 related to NFS exporting (it's not). It was reported by various
1212 people, but Dana Henriksen has finally helped me to track it down,
1213 so big thanks to him
1214
1215 * kernel: Protect against truncation of a swapfile
1216
12172006-10-10 Miklos Szeredi <miklos@szeredi.hu>
1218
1219 * kernel: Check for signature of super_operations->umount_begin().
1220 Ubuntu kernel 2.6.17 seems to use the new signature found in
1221 2.6.18. Thanks to Florent Mertens for the report
1222
12232006-10-08 Miklos Szeredi <miklos@szeredi.hu>
1224
1225 * Make sure inode numers wrap around at 2^32. This is needed on
1226 dual 64bit/32bit architectures, because 32bit applications using
1227 the non-largefile interface would otherwise break (EOVERFLOW error
1228 would be returned by the stat() system call family)
1229
1230 * ulockmgr: handle the case, when a locking operation fails
1231 because no more file desctriptors are available in
1232 ulockmgr_server. Also work around a Linux kernel bug (known to
1233 exist for all Linux kernel versions <= 2.6.18) which may cause
1234 sent file descriptors to be lost in the above case
1235
1236 * ulockmgr: optimize file descriptor use
1237
1238 * restore needed cpp flags to util/Makefile.am
1239
1240 * Install udev rules as 99-fuse.rules instead of 60-fuse.rules
1241
1242 * Minor clean up of udev rules
1243
1244 * Add a synchronous DESTROY message to kernel interface. This is
1245 invoked from umount, when the final instance of the filesystem is
1246 released. It is only sent for filesystems mounted with the
1247 'blkdev' option for security reasons.
1248
1249 * If the DESTROY message is received, call the filesystem's
1250 ->destroy() method. In this case it's not called from session
1251 destruction as it would be otherwise.
1252
12532006-10-01 Miklos Szeredi <miklos@szeredi.hu>
1254
1255 * Released 2.6.0-rc2
1256
12572006-10-01 Miklos Szeredi <miklos@szeredi.hu>
1258
1259 * Add support for FLUSH+RELEASE operation for FreeBSD. Original
1260 patch by Csaba Henk
1261
1262 * Add init script to insert fuse module and mount the control
1263 filesystem. The script is installed as /etc/init.d/fuse and on
1264 debian based systems (where update-rc.d is available) symlinks
1265 from /etc/rc*.d/ are also installed.
1266
1267 * Include '#define FUSE_USE_VERSION=XX' into examples so they
1268 become more self contained.
1269
12702006-09-30 Miklos Szeredi <miklos@szeredi.hu>
1271
1272 * API changes:
1273
1274 * Move lock_owner from a separate argument into fuse_file_info
1275
1276 * Add a flag to fuse_file_info indicating (1) a highlevel lock
1277 operation (unlock all) was initiated by a flush, (2) a lowlevel
1278 release operation should perform a flush as well.
1279
1280 * fusermount: revert modprobe change (2006-08-18) since it
1281 doesn't work reliably with udev
1282
1283 * Add support for block device backed filesystems. This mode is
1284 selected with the 'blkdev' option, which is privileged.
1285
1286 * Add support for the bmap (FIBMAP ioctl) operation on block
1287 device backed filesystems. This allows swapon and lilo to work on
1288 such filesystems.
1289
1290 * kernel changes:
1291
1292 * Drop support for kernels earlier than 2.6.9. Kernel module from
1293 previous (2.5.x) release can be used with library from this
1294 release
1295
1296 * In fuse_dentry_revalidate() use dget_parent() instead of
1297 dereferencing d_parent, since there's no protection against parent
1298 changing and going away
1299
1300 * Protect nlookup from concurrent updates
1301
1302 * In lookup if a directory alias exists but is unused,
1303 then get rid of it, otherwise return -EBUSY.
1304
1305 * In mkdir if a directory alias exists, return success, but leave
1306 dentry negative. In reality this could happen if a remote rename
1307 immediately followed the mkdir.
1308
1309 * Don't BUG in fuse_iget() if multiple retries are needed to get a
1310 good inode. This could happen if several lookups are racing for
1311 the same inode.
1312
13132006-09-29 Miklos Szeredi <miklos@szeredi.hu>
1314
1315 * Fix compilation on 2.6.9. Report from Troy Ayers
1316
13172006-09-27 Miklos Szeredi <miklos@szeredi.hu>
1318
1319 * Fix Oops in fuse_readpages(). Reported by David Shaw
1320
13212006-09-24 Csaba Henk <csaba.henk@creo.hu>
1322
1323 * Add support for nanosec times on FreeBSD
1324
1325 * Fix FreeBSD compatibility issues
1326
13272006-09-23 Miklos Szeredi <miklos@szeredi.hu>
1328
1329 * Fix one more compatibility bug. Thanks to Ricardo Correia
1330
1331 * Fix utimens compilation with uClibc. Patch from Jamie Guinan
1332
13332006-09-22 Miklos Szeredi <miklos@szeredi.hu>
1334
1335 * Fixed several compatibility bugs in low level interface.
1336 Reported by Ricardo Correia
1337
1338 * Add workaround for ARM caching bug
1339
13402006-09-16 Miklos Szeredi <miklos@szeredi.hu>
1341
1342 * Rename new utimes() method to more logical utimens()
1343
13442006-09-14 Miklos Szeredi <miklos@szeredi.hu>
1345
1346 * Fuse tried to unlink already unlinked hidden files. Bug
1347 reported by Milan Svoboda
1348
13492006-09-10 Miklos Szeredi <miklos@szeredi.hu>
1350
1351 * Released 2.6.0-rc1
1352
13532006-09-10 Miklos Szeredi <miklos@szeredi.hu>
1354
1355 * kernel: Fix unlock on close for kernels < 2.6.18
1356
1357 * Add ulockmgr library & server. This can be used for handling
1358 file locking requests either directly from libfuse or over a
1359 network, etc. This first version is not optimized and the number
1360 of file descriptors it uses may get out of hand
1361
13622006-09-07 Miklos Szeredi <miklos@szeredi.hu>
1363
1364 * lib: Add interrupt support to high level library, which may be
1365 enabled with the 'intr' mount option.
1366
1367 * When an operation is interrupted the thread handling that
1368 operation will receive SIGUSR1 (or other signal specified with the
1369 'intr_signal=N' option). The library installs a no-op signal
1370 handler for this signal, unless there's already a handler
1371 installed.
1372
1373 * The filesystem may query interrupt status (regardless of 'intr')
1374 with the fuse_interrupted() function.
1375
1376 * mount.fuse: initialize $HOME if not set. Report from Sven Goldt
1377
13782006-09-03 Miklos Szeredi <miklos@szeredi.hu>
1379
1380 * lib: Multithreaded loop now allows unlimited number of threads.
1381 This is needed for locking operations which may block
1382 indefinitely. Also the kernel now doesn't limit the number of
1383 outstanding requests so the library shouldn't do so either.
1384
13852006-09-01 Miklos Szeredi <miklos@szeredi.hu>
1386
1387 * Fix recursive lock bug in interrupt handling
1388
1389 * Add utimes() method to highlevel interface, which supports
1390 setting times with nanosecond resolution
1391
13922006-08-18 Miklos Szeredi <miklos@szeredi.hu>
1393
1394 * kernel: fix page leak if fuse_readpages() failed in it's
1395 initialization. Bug found and original patch from Alexander
1396 Zarochentsev
1397
1398 * For linux kernels >=2.6.18 (2.6.19 if using the fuse module from
1399 the kernel tree) the statfs method will receive the path within
1400 the filesystem on which the stat(v)fs syscall was called
1401
1402 * fusermount: try to modprobe fuse module if invoked by root and
1403 unable to open device. This is needed with udev, since the device
1404 node will be created only when the module is inserted, hence
1405 module autoloading won't work. Reported by Szakacsits Szabolcs
1406
14072006-07-30 Miklos Szeredi <miklos@szeredi.hu>
1408
1409 * fusermount: if selinux is active, restore the original file's
1410 security context in unmount_rename(). Redhat bugzilla id 188561.
1411 Patch from Yves Perrenoud
1412
1413 * Add POSIX file locking operation to high level library
1414
1415 * Initialize context for unlink of hidden files on umount. Bug
1416 reported by Tim Stoakes
1417
14182006-07-14 Miklos Szeredi <miklos@szeredi.hu>
1419
1420 * Multiple release() calls can race with each other, resulting in
1421 the hidden file being deleted before the last release finishes.
1422 Bug found and patch tested by Mark Huijgen
1423
14242006-07-05 Miklos Szeredi <miklos@szeredi.hu>
1425
1426 * fusermount: if /dev/fuse doesn't exist, suggest modprobing fuse;
1427 this makes sense on systems using udev. Reported by Szakacsits
1428 Szabolcs
1429
14302006-06-29 Miklos Szeredi <miklos@szeredi.hu>
1431
1432 * Released 2.6.0-pre3
1433
14342006-06-29 Miklos Szeredi <miklos@szeredi.hu>
1435
1436 * Support in kernel module for file locking and interruption. The
1437 same functionality is available in official kernels >= 2.6.18
1438
14392006-06-28 Miklos Szeredi <miklos@szeredi.hu>
1440
1441 * Add POSIX file locking support
1442
1443 * Add request interruption
1444
14452006-06-06 Miklos Szeredi <miklos@szeredi.hu>
1446
1447 * Add missing pthread_rwlock_destroy(). Patch from Remy Blank
1448
14492006-06-05 Remy Blank <remy.blank@pobox.com>
1450
1451 * lib: canonicalize mount point in fuse_helper_opt_proc() so that
1452 unmounting succeeds even if mount point was relative.
1453
14542006-06-04 Csaba Henk <csaba.henk@creo.hu>
1455
1456 * lib: fix emergency umount in helper.c when malloc fails.
1457 (The way it was done would end up in a segfault.)
1458
14592006-06-01 Csaba Henk <csaba.henk@creo.hu>
1460
1461 * lib: adjust threading related compiler flags.
1462 Switch to "-pthread" from "-lpthread" as that's the preferred
1463 one on several platforms. Consulted with Terrence Cole and
1464 Miklos Szeredi
1465
14662006-05-08 Miklos Szeredi <miklos@szeredi.hu>
1467
1468 * lib: search fusermount in installation directory (bindir) as
1469 well as in PATH.
1470
14712006-05-03 Miklos Szeredi <miklos@szeredi.hu>
1472
1473 * lib: fix compilation if CLOCK_MONOTONIC is not defined.
1474 Reported by Christian Magnusson
1475
14762006-04-23 Csaba Henk <csaba.henk@creo.hu>
1477
1478 * lib: make FreeBSD mount routine recognize if kernel features
1479 backgrounded init and if it does, run the mount util in foreground
1480 (similarly to Linux)
1481
14822006-04-21 Miklos Szeredi <miklos@szeredi.hu>
1483
1484 * kernel: fix fput deadlock fix, the lockless solution could lead
1485 to "VFS: busy inodes after umount..."
1486
1487 * kernel: fix race between checking and setting file->private_data
1488 for the device. Found by Al Viro
1489
14902006-04-11 Miklos Szeredi <miklos@szeredi.hu>
1491
1492 * kernel: remove request pool, instead allocate requests on
1493 demand. Account the number of background requests, and if they go
1494 over a limit, block the allocation of new requests.
1495
1496 * kernel: fix deadlock if backgrounded request holds the last
1497 reference to the super block
1498
1499 * kernel: don't use fuse_reset_request() during direct I/O
1500
15012006-04-06 Csaba Henk <csaba.henk@creo.hu>
1502
1503 * lib: Let FreeBSD mount option parsing routine recognize "no"
1504 prefixes for FUSE specific options as well
1505
15062006-04-01 Miklos Szeredi <miklos@szeredi.hu>
1507
1508 * lib: Add missing rwlock initialization. Patch by Ryan Bradetich
1509
15102006-03-17 Miklos Szeredi <miklos@szeredi.hu>
1511
1512 * API changes:
1513
1514 * fuse_main(), fuse_setup() and fuse_new() have an additionl
1515 user_data parameter
1516
1517 * fuse_mount() returns a 'struct fuse_chan' pointer instead of a
1518 file descriptor
1519
1520 * fuse_unmount() receives a 'struct fuse_chan' pointer. It
1521 destroys the given channel
1522
1523 * fuse_teardown() no longer has a file descriptor parameter
1524
1525 * new exported functions: fuse_session_remove_chan(),
1526 fuse_get_session(), fuse_daemonize()
1527
1528 * fuse_chan_recv() may now return a new channel which will be used
1529 to send the reply
1530
15312006-03-16 Miklos Szeredi <miklos@szeredi.hu>
1532
1533 * Released 2.6.0-pre2
1534
15352006-03-16 Miklos Szeredi <miklos@szeredi.hu>
1536
1537 * Don't unmount if already unmounted. This fixes a problem seen
1538 in the following situation: Lazy unmount a busy filesystem; Mount
1539 a new one in top; When the first finally unmounts, the second also
1540 unmounts. Reported by Franco Broi
1541
15422006-03-15 Miklos Szeredi <miklos@szeredi.hu>
1543
1544 * lowlevel lib: use indirect function calls instead of a
1545 switch/case construct. Besides increased efficiency it helps
1546 maintainability & readability too. Patch from Florin Malita
1547
15482006-03-13 Miklos Szeredi <miklos@szeredi.hu>
1549
1550 * kernel: replace global spinlock with a per-connection spinlock
1551
15522006-03-10 Miklos Szeredi <miklos@szeredi.hu>
1553
1554 * Fix source compatibility breakage for fuse_unmount(). Report
1555 from Yura Pakhuchiy
1556
15572006-03-02 Miklos Szeredi <miklos@szeredi.hu>
1558
1559 * Fix O_ASYNC handling in fuse_dev_release(). From Jeff Dike
1560
15612006-03-01 Miklos Szeredi <miklos@szeredi.hu>
1562
1563 * Add O_ASYNC and O_NONBLOCK support to FUSE device. Patch by
1564 Jeff Dike
1565
1566 * Renamed fuse_chan_receive() to fuse_chan_recv() and changed
1567 interface to return -errno in case of error.
1568
15692006-03-01 Csaba Henk <csaba.henk@creo.hu>
1570
1571 * libfuse: pass device file descriptor to fuse_unmount(), rewrite
1572 FreeBSD implementation so that it uses libc (sysctl backed) instead
1573 of an embdedded script (kmem backed). Adjust the control flow of
1574 hello_ll so that device doesn't get closed before unmount attempt.
1575
15762006-02-25 Miklos Szeredi <miklos@szeredi.hu>
1577
1578 * Lowlevel lib: return all-zero statvfs data if filesystem doesn't
1579 implement method. This is needed on FreeBSD, and nicer on Linux
1580 too. Highlevel lib already did this. Reported by Csaba Henk
1581
1582 * Fix negative entry handling. There was a bug, that negative
1583 lookups with timeouts (nodeid == 0) returned -EIO.
1584
15852006-02-23 Miklos Szeredi <miklos@szeredi.hu>
1586
1587 * Fix race between RELEASE and UNLINK, which might leave
1588 .fuse_hidden* files around
1589
15902006-02-21 Miklos Szeredi <miklos@szeredi.hu>
1591
1592 * fusexmp_fh: implement flush() method and call close() on the
1593 open file descriptor. This is needed if used on an NFS
1594 filesystem, which buffers data until file is closed. Franco Broi
1595 spotted the situation when 'cp -p' failed to set the modification
1596 time because of this.
1597
15982006-02-20 Miklos Szeredi <miklos@szeredi.hu>
1599
1600 * Released 2.6.0-pre1
1601
16022006-02-19 Miklos Szeredi <miklos@szeredi.hu>
1603
1604 * libfuse: fix use-after-free bug in interruptred reply_entry().
1605 Patch from John Muir
1606
1607 * libfuse: fix wrong symbol versioning for fuse_mount. Debian bug
1608 ID: 352631. Found by Stéphane Rosi
1609
16102006-02-17 Miklos Szeredi <miklos@szeredi.hu>
1611
1612 * Lowlevel lib: Unify fuse_dirent_size() and fuse_add_dirent()
1613 into a single function fuse_add_direntry(). This cleans up the
1614 interface and makes it possible to do stacking.
1615
16162006-02-16 Miklos Szeredi <miklos@szeredi.hu>
1617
1618 * Fix rare race betweeen abort and release caused by failed iget()
1619 in fuse_create_open().
1620
1621 * Add 'ac_attr_timeout' option e.g. for filesystems which do their
1622 own attribute caching.
1623
16242006-02-15 Miklos Szeredi <miklos@szeredi.hu>
1625
1626 * Work around FreeBSD runtime linker "feature" which binds an old
1627 version of a symbol to internal references if the symbol has more
1628 than one version. This resulted in infinite recursion in
1629 fuse_lowlevel_new_compat25().
1630
16312006-02-10 Csaba Henk <csaba.henk@creo.hu>
1632
1633 * Refine clock_gettime() querying so that linker options
1634 shall be set as it's appropriate for the target platform.
1635
16362006-02-09 Miklos Szeredi <miklos@szeredi.hu>
1637
1638 * Fix udev rule syntax. Reported by Nix
1639
16402006-02-08 Miklos Szeredi <miklos@szeredi.hu>
1641
1642 * In some cases udev rule seems to be ineffective when installed
1643 as 40-fuse.rules but work as 60-fuse.rules. Reported by John Hunt
1644
16452006-02-03 Miklos Szeredi <miklos@szeredi.hu>
1646
1647 * Fix compilation when build directory is different from source
1648 directory. Reported by Frédéric L. W. Meunier
1649
16502006-02-02 Miklos Szeredi <miklos@szeredi.hu>
1651
1652 * Fix even bigger bug introduced in fix for request_end() on
1653 2006-01-14. Reported by Gal Rosen
1654
16552006-01-30 Miklos Szeredi <miklos@szeredi.hu>
1656
1657 * highlevel-lib: add 'auto_cache' option. This caches file data
1658 based on modification time and size
1659
16602006-01-20 Miklos Szeredi <miklos@szeredi.hu>
1661
1662 * Sanitize storage type and help message in mount_bsd.c. Patch
1663 from Csaba Henk
1664
1665 * fuse_opt: add new helper constants FUSE_OPT_KEY_KEEP and
1666 FUSE_OPT_KEY_DISCARD
1667
1668 * Add options 'max_readahead', 'sync_read' and 'async_read'
1669
1670 * Kernel ABI version 7.6:
1671
1672 * Negotiate the 'max_readahead' value and 'async_read' flags with
1673 userspace in the INIT method
1674
1675 * Add connection info to ->init() methods to both lowlevel and
1676 highlevel API
1677
1678 * Fall back to synchronous read() behavior if either library or
1679 userspace filesystem is using the old interface version. This is
1680 needed so non-updated filesystems won't be confused by the
1681 different read() behavior
1682
16832006-01-19 Miklos Szeredi <miklos@szeredi.hu>
1684
1685 * lib: if "fsname=" option was given, pass it to fusermount
1686
1687 * fuse_opt: add new fuse_opt_insert_arg() function, which is
1688 needed by filesystems to implement some argument manipulations
1689 correctly
1690
1691 * fuse_opt: fix memory leak in handling "--" option
1692
16932006-01-18 Miklos Szeredi <miklos@szeredi.hu>
1694
1695 * kernel: fix detection of case when fuse is not configured into
1696 the kernel either as module or built-in
1697
1698 * fuse_opt.h: fix incompatibility with C++ compilers by renaming
1699 'template' structure member to 'templ'. Reported by Takashi Iwai
1700
1701 * fuse.h: fix compatibility bugs. Patch by Yura Pakhuchiy
1702
1703 * kernel: support version 2.6.16 (i_sem -> i_mutex)
1704
17052006-01-16 Miklos Szeredi <miklos@szeredi.hu>
1706
1707 * Added (again) asynchronous readpages support
1708
1709 * Each connection now shows up under /sys/fs/fuse/connections
1710
1711 * Connection attributes exported to sysfs: 'waiting' number of
1712 waiting requests; 'abort' abort the connection
1713
1714 * Connection may be aborted through either the sysfs interface or
1715 with 'umount -f mountpoint'
1716
17172006-01-14 Miklos Szeredi <miklos@szeredi.hu>
1718
1719 * Released 2.5.0
1720
17212006-01-14 Miklos Szeredi <miklos@szeredi.hu>
1722
1723 * kernel: fix a couple of bugs
1724
1725 * Order of request_end() and fuse_copy_finish() was wrong.
1726 Posthumous note: Franco Broi managed to exploit this, though it
1727 seemed quite impossible
1728
1729 * request_end() used request pointer after decrementing refcount
1730
1731 * Clearing ->connected or ->mounted connection flags could race
1732 with setting other bitfields not protected with a lock
1733
17342006-01-10 Miklos Szeredi <miklos@szeredi.hu>
1735
1736 * kernel: add necessary compile flags for 2.4.X/x86_64.
1737 Report from Sean Ziegeler
1738
17392006-01-09 Miklos Szeredi <miklos@szeredi.hu>
1740
1741 * Released 2.5.0-pre2
1742
17432006-01-09 Miklos Szeredi <miklos@szeredi.hu>
1744
1745 * Applied patch from Csaba Henk, to update mount_bsd to new
1746 fuse_mount() semantics
1747
1748 * Ignore auto,noauto,... options in mount.fuse. Reported by Frank
1749 Steiner and Don Taber
1750
1751 * fusermount: add 'dirsync' mount option
1752
17532006-01-07 Miklos Szeredi <miklos@szeredi.hu>
1754
1755 * Improved help reporting and added version reporting to library
1756
17572006-01-06 Miklos Szeredi <miklos@szeredi.hu>
1758
1759 * Change working directory to "/" even if running in the
1760 foreground. Patch from Jonathan Brandmeyer
1761
1762 * Changed lots of functions to use 'struct fuse_args' instead of
1763 separate argc and argv
1764
1765 * Added fuse_parse_cmdline(), fuse_set_signal_handlers() and
1766 fuse_remove_signal_handlers() functions, so that it's now pretty
1767 easy to get all the functionality of fuse_main() with a filesystem
1768 using the lowlevel API.
1769
17702006-01-02 Miklos Szeredi <miklos@szeredi.hu>
1771
1772 * mount.fuse: the 'user' option should be ignored. Report and
1773 solution from Mattd.
1774
1775 * mount.fuse: export PATH in the right place. Report and patch
1776 from Hannes Schweizer
1777
17782005-12-16 Miklos Szeredi <miklos@szeredi.hu>
1779
1780 * Clean up the option parsing interface slightly, by creating an
1781 "argument list" structure, that contains the argument vector and
1782 count
1783
17842005-12-15 Miklos Szeredi <miklos@szeredi.hu>
1785
1786 * fusermount: check if /mnt/mtab is a symlink and don't modify it
1787 in that case
1788
1789 * kernel: simplify request size limiting. INIT only contains
1790 maximum write size, maximum path component size remains fixed at
1791 1024 bytes, and maximum xattr size depends on read buffer.
1792
17932005-12-14 Miklos Szeredi <miklos@szeredi.hu>
1794
1795 * Fix readdir() failure on x86_64, of 32bit programs compiled
1796 without largefile support. Bug report and help from Anthony
1797 Kolasny
1798
1799 * If lookup returns invalid mode, return -EIO instead of creating
1800 a regular file
1801
1802 * Add current output argument vector to option processing
1803 function
1804
18052005-12-12 Miklos Szeredi <miklos@szeredi.hu>
1806
1807 * Fix stale code in ifdef FreeBSD. Patch from Csaba Henk
1808
18092005-12-09 Miklos Szeredi <miklos@szeredi.hu>
1810
1811 * Released 2.5.0-pre1
1812
18132005-12-09 Miklos Szeredi <miklos@szeredi.hu>
1814
1815 * libfuse: added option parsing interface, defined in
1816 <fuse_opt.h>.
1817
18182005-12-07 Miklos Szeredi <miklos@szeredi.hu>
1819
1820 * Return EIO for file operations (read, write, fsync, flush) on
1821 open files whose inode has become "bad". Inodes will be marked
1822 "bad" if their type changes. Bug report by Csaba Henk
1823
18242005-12-06 Miklos Szeredi <miklos@szeredi.hu>
1825
1826 * Use bigger request buffer size. write() did not work on archs
1827 with > 4k page size, Bug report by Mark Haney
1828
1829 * ABI version 7.5:
1830
1831 * Extend INIT reply with data size limits
1832
18332005-12-02 Miklos Szeredi <miklos@szeredi.hu>
1834
1835 * Fix memory leak in fuse_read_cmd()/fuse_process_cmd(). Bug
1836 reported by Vincenzo Ciancia
1837
1838 * Handle exit-by-umount in fuse_read_cmd()
1839
18402005-11-29 Miklos Szeredi <miklos@szeredi.hu>
1841
1842 * Check if '-msoft-float' option is supported by compiler when
1843 configuring for a 2.4.x kernel. Bug report by Mark Haney
1844
1845 * In multithreaded loop send a TERM signal to the main thread if
1846 one of the other threads exit. Needed on FreeBSD for a clean exit
1847 on umount. Should not cause any harm on Linux either
1848
18492005-11-28 Miklos Szeredi <miklos@szeredi.hu>
1850
1851 * Fix bug in 32-bit file handle compatibility
1852
18532005-11-27 Miklos Szeredi <miklos@szeredi.hu>
1854
1855 * Block TERM, INT, HUP and QUIT signals in all but the main
1856 thread. According to POSIX it's not specified which thread will
1857 receive these signals.
1858
1859 * Kernel changes:
1860
1861 * Check for directory aliasing on mkdir, not just on lookup
1862
1863 * Check for special node ID values in create+open operation
1864
1865 * Sync with -mm: readv, writev, aio_read and aio_write methods
1866 added to file operations
1867
1868 * Cleanups: lookup code, page offset calculation
1869
1870 * ABI stepped to 7.4, changes:
1871
1872 * frsize member added to fuse_kstatfs structure
1873
1874 * added support for negative entry caching: on lowlevel API if
1875 fuse_entry_param::ino is set to zero in reply to a lookup request,
1876 the kernel will cache the dentry for the specified amount of time.
1877
1878 * libfuse: added 'negative_timeout' option: specifies how much
1879 negative entries should be cached. Default is zero, to be
1880 compatible with prior versions
1881
18822005-11-22 Miklos Szeredi <miklos@szeredi.hu>
1883
1884 * Add detection of mainline FUSE code in running kernel
1885
18862005-11-21 Miklos Szeredi <miklos@szeredi.hu>
1887
1888 * Don't use async cancelation in multithreaded loop. This makes
1889 it more portable to systems where read() is not async cancel safe.
1890 Report from Andriy Gapon
1891
18922005-11-20 Miklos Szeredi <miklos@szeredi.hu>
1893
1894 * Warn if API version 11 compatibility is requested
1895
18962005-11-17 Miklos Szeredi <miklos@szeredi.hu>
1897
1898 * More FreeBSD merge
1899
1900 * fusermount: don't allow mountpoints with '\n', '\t', or '\\' in
1901 them, because it corrupts /etc/mtab. Found by Thomas Biege
1902 CVE-2005-3531
1903
1904 * libfuse: don't use system() to invoke 'fusermount -u ...'
1905 because it breaks mountpoints with spaces in them into multiple
1906 arguments
1907
19082005-11-16 Miklos Szeredi <miklos@szeredi.hu>
1909
1910 * Merge library part of FreeBSD port. Patch by Csaba Henk
1911
19122005-11-11 Miklos Szeredi <miklos@szeredi.hu>
1913
1914 * Use 64bit type for file handle, so the full range supported by
1915 the kernel interface is available to applications
1916
19172005-11-10 Miklos Szeredi <miklos@szeredi.hu>
1918
1919 * Moved mountpoint argument checking from fuse_parse_cmdline() to
1920 fuse_mount() in preparation to FreeBSD merge.
1921
19222005-11-08 Miklos Szeredi <miklos@szeredi.hu>
1923
1924 * Remove unneeded close() from fuse_teardown(). Spotted by Csaba
1925 Henk.
1926
19272005-11-07 Miklos Szeredi <miklos@szeredi.hu>
1928
1929 * Make the statfs change backwards compatible.
1930
19312005-11-06 Miklos Szeredi <miklos@szeredi.hu>
1932
1933 * Change ->statfs() method to use 'struct statvfs' instead of
1934 'struct statfs'. This makes the API more portable since statvfs()
1935 is defined by POSIX.
1936
19372005-10-28 Miklos Szeredi <miklos@szeredi.hu>
1938
1939 * Add fgetattr() method, which currently will only be called after
1940 a successful call to a create() method.
1941
19422005-10-26 Miklos Szeredi <miklos@szeredi.hu>
1943
1944 * Change kernel ABI version to 7.3
1945
1946 * Add ACCESS operation. This is called from the access() system
1947 call if 'default_permissions' mount option is not given, and is
1948 not called on kernels 2.4.*
1949
1950 * Add atomic CREATE+OPEN operation. This will only work with
1951 2.6.15 (presumably) or later Linux kernels.
1952
1953 * Add ftruncate() method. This will only work with 2.6.15
1954 (presumably) or later Linux kernels.
1955
1956 * Fix kernel module compile if kernel source and build directories
1957 differ. Report and initial patch by John Eastman
1958
19592005-10-18 Miklos Szeredi <miklos@szeredi.hu>
1960
1961 * lib: optimize buffer reallocation in fill_dir.
1962
19632005-10-17 Miklos Szeredi <miklos@szeredi.hu>
1964
1965 * Released 2.4.1
1966
19672005-10-14 Miklos Szeredi <miklos@szeredi.hu>
1968
1969 * libfuse: add debug for write result (by Shaun Jackman) and
1970 warnings for too large read/write result
1971
19722005-10-11 Miklos Szeredi <miklos@szeredi.hu>
1973
1974 * Spelling fixes, thanks to Ioannis Barkas
1975
19762005-10-10 Miklos Szeredi <miklos@szeredi.hu>
1977
1978 * fuse_common.h: use extern "C". Thanks to Valient Gough for the
1979 patch
1980
19812005-10-07 Miklos Szeredi <miklos@szeredi.hu>
1982
1983 * highlevel-lib: init() and destroy() methods didn't have an
1984 initialized fuse_context. Bug reported by Tim Stoakes
1985
19862005-10-04 Miklos Szeredi <miklos@szeredi.hu>
1987
1988 * Released 2.4.0
1989
19902005-10-03 Miklos Szeredi <miklos@szeredi.hu>
1991
1992 * Add documentation to fuse_lowlevel.h
1993
1994 * API cleanups:
1995
1996 * Remove definitions of unused FATTR_CTIME / FUSE_SET_ATTR_CTIME
1997
1998 * Move fuse_mount() and fuse_unmount() to fuse_common.h
1999
2000 * Change the return type of fuse_reply_none() from int to void.
2001
20022005-09-30 Miklos Szeredi <miklos@szeredi.hu>
2003
2004 * kernel: NFS exporting leaked dentries. Bug found and fixed by
2005 Akshat Aranya.
2006
20072005-09-29 Miklos Szeredi <miklos@szeredi.hu>
2008
2009 * fusermount: fix error message, when unable to open /dev/fuse.
2010 Report by Balázs Pozsár
2011
20122005-09-28 Miklos Szeredi <miklos@szeredi.hu>
2013
2014 * UClibc fixes from Christian Magnusson
2015
20162005-09-27 Miklos Szeredi <miklos@szeredi.hu>
2017
2018 * Added NAME="%k" to util/udev.rules. Fix by Mattias Wadman.
2019
20202005-09-26 Miklos Szeredi <miklos@szeredi.hu>
2021
2022 * Released 2.4.0-rc1
2023
20242005-09-26 Miklos Szeredi <miklos@szeredi.hu>
2025
2026 * fusermount: allow user umount in the case when /etc/mtab is a
2027 symlink to /proc/mounts. Reported by Balázs Pozsár.
2028
20292005-09-23 Miklos Szeredi <miklos@szeredi.hu>
2030
2031 * Check for special node ID values in lookup and creation
2032
20332005-09-22 Miklos Szeredi <miklos@szeredi.hu>
2034
2035 * Slight optimization in returning EINVAL error in case of an open
2036 with O_DIRECT flag.
2037
20382005-09-20 Miklos Szeredi <miklos@szeredi.hu>
2039
2040 * Remove '--enable-auto-modprobe' configure flag. Module
2041 auto-loading is now handled by the kernel.
2042
20432005-09-15 Miklos Szeredi <miklos@szeredi.hu>
2044
2045 * Install UDEV rule file, so /dev/fuse is created with mode 0666.
2046 Help from Jens M. Noedler.
2047
20482005-09-14 Miklos Szeredi <miklos@szeredi.hu>
2049
2050 * Add memory cleanup on thread exit
2051
20522005-09-13 Miklos Szeredi <miklos@szeredi.hu>
2053
2054 * Set umask to zero in fusexmp and fusexmp_fh, so that
2055 files/directories are created with the requested mode.
2056
20572005-09-12 Miklos Szeredi <miklos@szeredi.hu>
2058
2059 * Don't ignore read error in multithreaded loop
2060
20612005-09-08 Miklos Szeredi <miklos@szeredi.hu>
2062
2063 * Released 2.4.0-pre2
2064
20652005-09-08 Miklos Szeredi <miklos@szeredi.hu>
2066
2067 * Revert lock and access operations. Postpone these until 2.5.
2068
20692005-09-02 Miklos Szeredi <miklos@szeredi.hu>
2070
2071 * Fix compile warning on 2.6.13 and later
2072
2073 * Fix compilation on old kernels
2074
20752005-08-19 Miklos Szeredi <miklos@szeredi.hu>
2076
2077 * lib: always refresh directory contents after rewinddir() to
2078 conform to SUS. Bug found by John Muir.
2079
20802005-08-15 Miklos Szeredi <miklos@szeredi.hu>
2081
2082 * Released 2.4.0-pre1
2083
20842005-08-14 Miklos Szeredi <miklos@szeredi.hu>
2085
2086 * lib: cleaned up (or messed up, depending on your POV) the low
2087 level library API. Hopefully this is close to the final form.
2088
20892005-08-05 Miklos Szeredi <miklos@szeredi.hu>
2090
2091 * fusermount: don't allow empty mountpoint argument, which defeats
2092 automatic umounting in fuse_main(). Bugreport by Václav Jůza
2093
20942005-08-03 Miklos Szeredi <miklos@szeredi.hu>
2095
2096 * fix warnings in fuse.h and fuse_lowlevel.h if -Wshadow compiler
2097 option is used (Paul Alfille).
2098
20992005-08-02 Miklos Szeredi <miklos@szeredi.hu>
2100
2101 * highlevel-lib: added mount options "attr_timeout" and
2102 "entry_timeout". These options control the length of time file
2103 attributes and entries (names) are cached. Both default to 1.0
2104 second.
2105
2106 * kernel: correctly handle zero timeout for attributes and entries
2107
21082005-08-01 Miklos Szeredi <miklos@szeredi.hu>
2109
2110 * Added missing symbols to versionscript (Joshua J. Berry)
2111
2112 * kernel: implement two flags, open can set: 'direct_io' and
2113 'keep_cache'. These correspond exactly to mount options
2114 'direct_io' and 'kernel_cache', but allow a per-open setting.
2115
2116 * Move 'direct_io' and 'kernel_cache' mount option handling to
2117 userspace. For both mount options, if the option is given, then
2118 the respective open flag is set, otherwise the open flag is left
2119 unmodified (so the filesystem can set it).
2120
2121 * lib (highlevel): make open method optional
2122
21232005-07-28 Miklos Szeredi <miklos@szeredi.hu>
2124
2125 * kernel: invalidate attributes for read/readdir/readlink
2126 operations
2127
2128 * kernel: detect newer UML kernels
2129
21302005-07-26 Miklos Szeredi <miklos@szeredi.hu>
2131
2132 * Make the installation path of fuse.ko and mount.fuse
2133 configurable through INSTALL_MOD_PATH and MOUNT_FUSE_PATH
2134 environment variables. Requirement and help from Csaba Henk.
2135
21362005-07-22 Miklos Szeredi <miklos@szeredi.hu>
2137
2138 * Fix bug, that causes filesystem requests to hang when unique
2139 request counter becomes negative. This happens after
2140 2,147,483,648 operations, so most people won't care. Thanks to
2141 Franco Broi for the report and testing.
2142
21432005-07-21 Miklos Szeredi <miklos@szeredi.hu>
2144
2145 * Don't change mtime/ctime/atime to local time on read/write.
2146 Bug reported by Ben Grimm
2147
2148 * Install fuse_common.h and fuse_lowlevel.h. Report by Christian
2149 Magnusson
2150
2151 * fusermount: use getopt_long() for option parsing. It allows the
2152 use of '--' to stop argument scanning, so fusermount can now
2153 operate on directories whose names begin with a '-'. Patch by
2154 Adam Connell
2155
21562005-07-15 Miklos Szeredi <miklos@szeredi.hu>
2157
2158 * fusermount: add '-v', '--version' and '--help' options
2159
2160 * add inode based API
2161
21622005-07-12 Miklos Szeredi <miklos@szeredi.hu>
2163
2164 * lib: don't block signals in worker threads. Problem noticed by
2165 Usarin Heininga
2166
21672005-07-07 Miklos Szeredi <miklos@szeredi.hu>
2168
2169 * lib: don't allow both 'allow_other' and 'allow_root' options to
2170 be given
2171
21722005-07-06 Miklos Szeredi <miklos@szeredi.hu>
2173
2174 * fusermount: check if mountpoint is empty (only '.' and '..' for
2175 directories, and size = 0 for regular files). If "nonempty"
2176 option is given, omit this check. This is useful, so users don't
2177 accidentally hide data (e.g. from backup programs). Thanks to
2178 Frank van Maarseveen for pointing this out.
2179
2180 * kernel: check if mandatory mount options ('fd', 'rootmode',
2181 'user_id', 'group_id') are all given
2182
2183 * lib: simplify 'readdir_ino' handling
2184
2185 * lib: add mount options 'umask=M', 'uid=N', 'gid=N'
2186
21872005-07-03 Miklos Szeredi <miklos@szeredi.hu>
2188
2189 * kernel: clean up 'direct_io' code
2190
21912005-06-28 Miklos Szeredi <miklos@szeredi.hu>
2192
2193 * Add 'mount.fuse' written by Petr Klima
2194
2195 * '/dev/fuse' is created by 'make install' if does not yet exist
2196
21972005-06-20 Miklos Szeredi <miklos@szeredi.hu>
2198
2199 * Fix UCLIBC compile error. Patch by Christian Magnusson
2200
22012005-06-08 Miklos Szeredi <miklos@szeredi.hu>
2202
2203 * Enable the auto-loading of the module via access to the
2204 corresponding device file. Patch by Takashi Iwai.
2205
2206 * Allow mounting a regular file (over a regular file) for
2207 unprivleged users.
2208
2209 * Do not create temporary device file. Require "/dev/fuse" to
2210 exist, and be readable/writable by the mounting user.
2211
22122005-06-02 Miklos Szeredi <miklos@szeredi.hu>
2213
2214 * Released 2.3.0
2215
22162005-06-02 Miklos Szeredi <miklos@szeredi.hu>
2217
2218 * Fix serious information leak: if the filesystem returns a short
2219 byte count to a read request, and there are non-zero number of
2220 pages which are not filled at all, these pages will not be zeroed.
2221 Hence the user can read out previous memory contents. Found by
2222 Sven Tantau.
2223
22242005-05-27 Miklos Szeredi <miklos@szeredi.hu>
2225
2226 * Add "readdir_ino" mount option, which tries to fill in the d_ino
2227 field in struct dirent. This mount option is ignored if "use_ino"
2228 is used. It helps some programs (e.g. 'pwd' used over NFS from a
2229 non-Linux OS). Patch by David Shaw.
2230
22312005-05-12 Miklos Szeredi <miklos@szeredi.hu>
2232
2233 * Released 2.3-rc1
2234
22352005-05-12 Miklos Szeredi <miklos@szeredi.hu>
2236
2237 * File save in krusader and other editors doesn't work with sshfs,
2238 because open() is interrupted by a periodic signal, and open()
2239 restarts forever, without any progress. This could just be fixed
2240 in open(), but the problem is more generic: if signals are
2241 received more often than the filesystem can get the request to
2242 userspace, it will never finish. This is probably only a
2243 theoretical problem, nevertheless I'm removing the possibility to
2244 interrupt requests with anything other than SIGKILL, even before
2245 being sent to userspace. Bugreport by Eduard Czimbalmos.
2246
22472005-05-09 Miklos Szeredi <miklos@szeredi.hu>
2248
2249 * libfuse: add "tree_lock" rwlock, that is locked for write in
2250 rename, unlink and rmdir, and locked for read in all other
2251 operations. This should fix the rename/release race reported by
2252 Valient Gough and others. The solution is very coarse, a finer
2253 grained locking scheme could be implemented, but it would be much
2254 more complex. Let's see whether this is good enough.
2255
22562005-05-09 Miklos Szeredi <miklos@szeredi.hu>
2257
2258 * Released 2.3-pre7
2259
22602005-05-08 Miklos Szeredi <miklos@szeredi.hu>
2261
2262 * Better fix for out of order FORGET messages. Now the
2263 LOOKUP/FORGET messages are balanced exactly (one FORGET can
2264 balance many lookups), so the order no longer matters. This
2265 changes the kernel ABI slightly, but the library remains backward
2266 compatible.
2267
22682005-05-06 Miklos Szeredi <miklos@szeredi.hu>
2269
2270 * Fix abort for out of order FORGET messages. Again. Spotted by
2271 Franco Broi again. Sorry :)
2272
22732005-04-29 Miklos Szeredi <miklos@szeredi.hu>
2274
2275 * Released 2.3-pre6
2276
22772005-04-29 Miklos Szeredi <miklos@szeredi.hu>
2278
2279 * Make fusermount work with fuse kernel modules not yet supporting
2280 the "group_id" option (added for the purpose of stricter
2281 permission checking).
2282
22832005-04-28 Miklos Szeredi <miklos@szeredi.hu>
2284
2285 * Check for hard-linked directories in lookup. This could cause
2286 problems in the VFS, which assumes that such objects never exist.
2287
2288 * Make checking of permission for other users more strict. Now
2289 the same privilege is required for the mount owner as for ptrace
2290 on the process performing the filesystem operation.
2291
22922005-04-23 Miklos Szeredi <miklos@szeredi.hu>
2293
2294 * Released 2.3-pre5
2295
22962005-04-22 Miklos Szeredi <miklos@szeredi.hu>
2297
2298 * Add -msoft-float to kernel module compile flags for 2.4.X. This
2299 is needed on certain architectures. Report from Chris Kirby
2300
2301 * Fix buggy behavior of open(..., O_CREAT|O_EXCL) if interrupted.
2302 Reported by David Shaw
2303
2304 * Remove "allow_root" option from kernel module, and implement
2305 it's functionality in the library
2306
2307 * Fix Oops caused by premature release of fuse_conn. Clean up
2308 related code, to be more readable
2309
2310 * Sendfile should not use page cache if "direct_io" mount option
2311 is given
2312
23132005-04-08 Miklos Szeredi <miklos@szeredi.hu>
2314
2315 * Fix Oops in case of nfs export. Spotted by David Shaw
2316
2317 * Fix another Oops in case of write over nfs with direct_io turned
2318 on. Again spotted by David Shaw
2319
23202005-04-07 Miklos Szeredi <miklos@szeredi.hu>
2321
2322 * Released 2.3-pre4
2323
23242005-04-07 Miklos Szeredi <miklos@szeredi.hu>
2325
2326 * lib: finalized new readdir() interface, which now supersedes the
2327 getdir() method.
2328
23292005-04-03 Miklos Szeredi <miklos@szeredi.hu>
2330
2331 * Released 2.3-pre3
2332
23332005-04-03 Miklos Szeredi <miklos@szeredi.hu>
2334
2335 * Implement backward compatibility with version 5 kernel ABI
2336
23372005-04-01 Miklos Szeredi <miklos@szeredi.hu>
2338
2339 * Released 2.3-pre2
2340
23412005-04-01 Miklos Szeredi <miklos@szeredi.hu>
2342
2343 * kernel: fix dirent offset handling
2344
2345 * lib: add readdir and releasedir methods
2346
2347 * lib: use fh field of fuse_file_info in opendir, readdir,
2348 releasedir and fsyncdir methods
2349
2350 * lib: check kernel API version and bail out of it's old. This
2351 will be properly fixed in the next release
2352
23532005-03-31 Miklos Szeredi <miklos@szeredi.hu>
2354
2355 * Released 2.3-pre1
2356
23572005-03-31 Miklos Szeredi <miklos@szeredi.hu>
2358
2359 * kernel API: add padding to structures, so 64bit and 32bit
2360 compiler will return the same size
2361
2362 * kernel API: add offset field to fuse_dirent. This will allow
2363 more sophisticated readdir interface for userspace
2364
2365 * kernel API: change major number to 6
2366
2367 * kernel: fix warnings on 64bit archs
2368
2369 * kernel: in case of API version mismatch, return ECONNREFUSED
2370
23712005-03-24 Miklos Szeredi <miklos@szeredi.hu>
2372
2373 * kernel: trivial cleanups
2374
23752005-03-21 Miklos Szeredi <miklos@szeredi.hu>
2376
2377 * Add fsyncdir() operation
2378
23792005-03-19 Miklos Szeredi <miklos@szeredi.hu>
2380
2381 * kernel: add locking to background list (fixes previous fix)
2382
23832005-03-18 Miklos Szeredi <miklos@szeredi.hu>
2384
2385 * kernel: fix bug which could cause leave busy inodes after
2386 unmount, and Oops.
2387
23882005-03-08 Miklos Szeredi <miklos@szeredi.hu>
2389
2390 * examples: add -lpthread to link flags to work around valgrind
2391 quirk
2392
2393 * lib: don't exit threads, so cancelation doesn't cause segfault
2394
23952005-03-04 Miklos Szeredi <miklos@szeredi.hu>
2396
2397 * kernel: fix nasty bug which could cause an Oops under certain
2398 situations. Found by Magnus Johansson
2399
24002005-02-28 Miklos Szeredi <miklos@szeredi.hu>
2401
2402 * libfuse: added opendir() method. This can be used in case
2403 permission checking in getdir() is too late. Thanks to Usarin
2404 Heininga for pointing out this deficiency
2405
2406 * libfuse: added init() and destroy() methods to fuse_operations
2407
2408 * kernel: llseek() method for files and directories made explicit
2409
2410 * kernel: fixed inode leak in NFS export in case of nodeid
2411 wrapping
2412
24132005-02-15 Miklos Szeredi <miklos@szeredi.hu>
2414
2415 * libfuse: clean up some unitialized memory found with valgrind
2416
2417 * Add -lpthread to Libs in fuse.pc. Valgrind seems to need an
2418 explicitly linked libpthread for applications
2419
24202005-02-10 Miklos Szeredi <miklos@szeredi.hu>
2421
2422 * fusermount: set umask, otherwise /etc/mtab will have
2423 unpredictable permission. Spotted by Jindrich Kolorenc
2424
2425 * fusermount: set owner and group of /etc/mtab to original values
2426 on unmount
2427
2428 * libfuse: add 'use_ino' option to help. Patch by Valient Gough
2429
24302005-02-07 Miklos Szeredi <miklos@szeredi.hu>
2431
2432 * Cleaned up directory reading (temporary file is not used)
2433
24342005-02-02 Miklos Szeredi <miklos@szeredi.hu>
2435
2436 * Released 2.2
2437
24382005-02-02 Miklos Szeredi <miklos@szeredi.hu>
2439
2440 * Fix possible race when operation is interrupted
2441
24422005-01-28 Miklos Szeredi <miklos@szeredi.hu>
2443
2444 * Fix compilation on 2.6.7
2445
24462005-01-26 Miklos Szeredi <miklos@szeredi.hu>
2447
2448 * Released 2.2-pre6
2449
24502005-01-26 Miklos Szeredi <miklos@szeredi.hu>
2451
2452 * Fix bug in link() operation which caused the wrong path to be
2453 passed as the first argument. Found by Anton Altaparmakov
2454
24552005-01-21 Miklos Szeredi <miklos@szeredi.hu>
2456
2457 * LIB: fix double reply in readdir operation
2458
2459 * fusermount: fix uid checking bug. Patch by Adam Connell
2460
2461 * KERNEL: fix compile on various RedHat patched 2.4 kernels.
2462 Patch by Keshava Gowda
2463
24642005-01-20 Miklos Szeredi <miklos@szeredi.hu>
2465
2466 * KERNEL: provide correct llseek semantics for fuse device (fixes
2467 a bug on Progeny 2.4.20 kernel). Reported by Valient Gough
2468
24692005-01-20 Miklos Szeredi <miklos@szeredi.hu>
2470
2471 * Released 2.2-pre5 (matches kernel 2.6.11-rc1-mm2)
2472
24732005-01-18 Miklos Szeredi <miklos@szeredi.hu>
2474
2475 * KERNEL ABI: remove GETDIR operation, and add OPENDIR, READDIR
2476 and RELEASEDIR. This ends the ugly hack of passing a file
2477 descriptor to the kernel, and actually makes the code simpler.
2478
24792005-01-17 Miklos Szeredi <miklos@szeredi.hu>
2480
2481 * Released 2.2-pre4
2482
24832005-01-17 Miklos Szeredi <miklos@szeredi.hu>
2484
2485 * fusermount: remove capability setting, which was the cause of
2486 problems for some users. It seems that FS related capabilities
2487 are removed by setfsuid(), so this isn't even needed.
2488
24892005-01-15 Miklos Szeredi <miklos@szeredi.hu>
2490
2491 * fix compilation on 2.4 kernels (reported by Valient Gough)
2492
2493 * fix failure to unmount bug (found by David Shaw)
2494
2495 * fusermount: improve parsing of /etc/fuse.conf
2496
24972005-01-13 Miklos Szeredi <miklos@szeredi.hu>
2498
2499 * Remove 'mount_max' and 'user_allow_other' module options. These
2500 are now checked by fusermount, and can be set in /etc/fuse.conf
2501
2502 * KERNEL: change check for fsid == 0 to capable(CAP_DAC_OVERRIDE)
2503
25042005-01-11 Miklos Szeredi <miklos@szeredi.hu>
2505
2506 * KERNEL: fix possible inode allocation problem, where
2507 sizeof(struct inode) is not aligned (found by Mike Waychison)
2508
2509 * KERNEL: use new follow_link/put_link methods
2510
2511 * KERNEL: cosmetic fixes
2512
25132005-01-10 Miklos Szeredi <miklos@szeredi.hu>
2514
2515 * Released 2.2-pre3
2516
25172005-01-10 Miklos Szeredi <miklos@szeredi.hu>
2518
2519 * Add missing code that was accidently left out
2520
25212005-01-09 Miklos Szeredi <miklos@szeredi.hu>
2522
2523 * Released 2.2-pre2
2524
25252005-01-09 Miklos Szeredi <miklos@szeredi.hu>
2526
2527 * Change "uid" mount option to "user_id" to avoid confusion with a
2528 mount option "uid" commonly used by many filesystems
2529
25302005-01-09 Miklos Szeredi <miklos@szeredi.hu>
2531
2532 * Released 2.2-pre1
2533
25342005-01-09 Miklos Szeredi <miklos@szeredi.hu>
2535
2536 * If FUSE is configured in the kernel, don't build it by default
2537
25382005-01-07 Miklos Szeredi <miklos@szeredi.hu>
2539
2540 * Compile fix by Christian Magnusson
2541
25422005-01-05 Miklos Szeredi <miklos@szeredi.hu>
2543
2544 * Fix compilation for 2.6.{0-5} kernels
2545
25462005-01-04 Miklos Szeredi <miklos@szeredi.hu>
2547
2548 * KERNEL: if request is interrupted, still keep reference to used
2549 inode(s) and file, so that FORGET and RELEASE are not sent until
2550 userspace finishes the request.
2551
2552 * remove /{sys,proc}/fs/fuse/version, and instead add an INIT
2553 request with the same information, which is more flexible,
2554 simpler, works on embedded systems.
2555
25562004-12-16 Miklos Szeredi <miklos@szeredi.hu>
2557
2558 * KERNEL ABI: update interface to make it independent of type
2559 sizes. This will help on 64 bit architectures which can run
2560 legacy 32 bit applications.
2561
2562 * KERNEL ABI: add "len" field to request headers. This will allow
2563 sending/receiving requests in multiple chunks.
2564
2565 * KERNEL: handle file type change more intelligently
2566
2567 * LIB: "-o debug" option should disable backgrounding (fix by
2568 Fabien Reygrobellet)
2569
25702004-12-13 Miklos Szeredi <miklos@szeredi.hu>
2571
2572 * KERNEL: invalidate dentry/attributes if interrupted request
2573 could leave filesystem in an unknown state.
2574
25752004-12-12 Miklos Szeredi <miklos@szeredi.hu>
2576
2577 * KERNEL: lots of cleanups related to avoiding possible deadlocks.
2578 These will cause some regressions, but stability is considered
2579 more important. If any of these features turns out to be
2580 important, it can be readded with the deadlock problems addressed.
2581
2582 * Make all requests interruptible (only with SIGKILL currently).
2583 This can be used to break any deadlock produced by the userspace
2584 filesystem accessing it's own exported files. The RELEASE request
2585 is special, because if it's interrupted before sending it to
2586 userspace it is still sent, but the reply is not awaited.
2587
2588 * If request is interrupted before being sent to userspace, and if
2589 it hasn't yet got any side effects, it is always restarted,
2590 regardless of the SA_RESTART flag. This makes these interruptions
2591 transparent to the process.
2592
2593 * Remove shared-writable mmap support, which was prone to an
2594 out-of-memory deadlock situation
2595
2596 * Remove INVALIDATE userspace initiated request
2597
2598 * Make readpages() synchronous. Asynchronous requests are
2599 deadlock prone, since they cannot be interrupted.
2600
2601 * Add readv/writev support to fuse device operations
2602
2603 * Remove some printks, which userspace FS can use for a DoS
2604 against syslog
2605
2606 * Remove 'large_read' mount option from 2.6 in kernel, check it in
2607 fusermount instead
2608
2609 * LIB: improve compatibility with a fuse.h header installed in
2610 ${prefix}/include which in turn includes the real header.
2611
2612 * LIB: improve compatibility by defining fuse_main() (which is now
2613 not used), so old configure scripts find it.
2614
26152004-12-10 Miklos Szeredi <miklos@szeredi.hu>
2616
2617 * When mounting on a subdirectory of / don't duplicate slashes at
2618 the beggining of path (spotted by David Shaw)
2619
26202004-12-09 Miklos Szeredi <miklos@szeredi.hu>
2621
2622 * Fix bug causing garbage in mount options (spotted by David Shaw)
2623
26242004-12-07 Miklos Szeredi <miklos@szeredi.hu>
2625
2626 * Add 'writepage' flag to 'fuse_file_info'.
2627
2628 * More comments in fuse.h
2629
2630 * Get rid of double underscores
2631
26322004-12-04 Miklos Szeredi <miklos@szeredi.hu>
2633
2634 * Add -D_FILE_OFFSET_BITS=64 to cflags provided by pkg-config
2635
2636 * helper.c: add -ho option, which only displays the options not
2637 the usage header. This can be used by filesystems which have
2638 their own options.
2639
26402004-12-03 Miklos Szeredi <miklos@szeredi.hu>
2641
2642 * Add source compatibility to 2.1 and 1.1 APIs. To select betwen
2643 versions simply define FUSE_USE_VERSION to 22, 21 or 11 before
2644 including the fuse header
2645
2646 * Add binary compatibility to 2.1 version of library with symbol
2647 versioning
2648
26492004-12-03 Miklos Szeredi <miklos@szeredi.hu>
2650
2651 * Released 2.1
2652
26532004-12-01 Miklos Szeredi <miklos@szeredi.hu>
2654
2655 * kernel: clean up writing functions
2656
2657 * kernel: no allocation on write in direct_io mode
2658
2659 * move linux/fuse.h to fuse_kernel.h
2660
26612004-11-30 Miklos Szeredi <miklos@szeredi.hu>
2662
2663 * kernel: clean up reading functions
2664
26652004-11-29 Miklos Szeredi <miklos@szeredi.hu>
2666
2667 * kernel: make readpage() uninterruptible
2668
2669 * kernel: check readonly filesystem flag in fuse_permission
2670
2671 * lib: don't die if version file not found and new style device
2672 exists
2673
2674 * lib: add '-r' option, which is short for '-o ro'
2675
2676 * fusermount: simplify device opening
2677
2678 * kernel: when direct_io is turend on, copy data directly to
2679 destination without itermediate buffer. More efficient and safer,
2680 since no allocation is done.
2681
2682 * fusermount: fix warning if fuse module is not loaded
2683
2684 * kernel: use /dev/fuse on 2.4 too
2685
26862004-11-26 Miklos Szeredi <miklos@szeredi.hu>
2687
2688 * libfuse API change: open, read, write, flush, fsync and release
2689 are passed a 'struct fuse_file_info' pointer containing the open
2690 flags (open and release), and the file handle. Verion changed to
2691 3.0.
2692
26932004-11-23 Miklos Szeredi <miklos@szeredi.hu>
2694
2695 * More cleanups in the kernel
2696
2697 * The 10,229 charater device number has been assigned for FUSE
2698
2699 * Version file checking fix (reported by Christian Magnusson)
2700
2701 * fusermount: opening the fuse device now doesn't need /sys.
2702
2703 * Optimize reading by controlling the maximum readahead based on
2704 the 'max_read' mount option
2705
2706 * fixes for UCLIBC (Christian Magnusson)
2707
27082004-11-19 Miklos Szeredi <miklos@szeredi.hu>
2709
2710 * Cleaned up kernel in preparation for merge into mainline:
2711
2712 * Use /sys/fs/fuse/version instead of /proc/fs/fuse/version
2713
2714 * Use real device (/dev/fuse) instead of /proc/fs/fuse/dev
2715
2716 * __user annotations for sparse
2717
2718 * allocate individual pages instead of kmalloc in fuse_readdir,
2719 fuse_read and fuse_write.
2720
2721 * Fix NFS export in case "use_ino" mount option is given
2722
2723 * Make libfuse and fusermount compatible with future versions
2724
2725 * fusermount: properly add mount options to /etc/mtab
2726
27272004-11-15 Miklos Szeredi <miklos@szeredi.hu>
2728
2729 * fusermount: do not resolve last component of mountpoint on if it
2730 is '.' or '..'. This new path resolvation is now done on mount as
2731 well as unmount. This enables relative paths to work on unmount.
2732
2733 * fusermount: parse common mount options like "ro", "rw", etc...
2734
2735 * Allow module params to be changed through sysfs
2736
27372004-11-14 Miklos Szeredi <miklos@szeredi.hu>
2738
2739 * Released 2.1-pre1
2740
27412004-11-14 Miklos Szeredi <miklos@szeredi.hu>
2742
2743 * Fix bug in fuse_readpages() causing Oops in certain situations.
2744 Bug found by Vincenzo Ciancia.
2745
2746 * Fix compilation with kernels versions > 2.6.9.
2747
27482004-11-11 Miklos Szeredi <miklos@szeredi.hu>
2749
2750 * Check kernel interface version in fusermount to prevent
2751 strangeness in case of mismatch.
2752
2753 * No need to allocate fuse_conn until actual mount happens
2754
2755 * Fix potential race between umount and fuse_invalidate
2756
2757 * Check superblock of proc file in addition to inode number
2758
2759 * Fix race between request_send_noreply() and fuse_dev_release()
2760
27612004-11-10 Miklos Szeredi <miklos@szeredi.hu>
2762
2763 * Separate configure for the kernel directory
2764
2765 * Don't allow write to return more than 'count'
2766
2767 * Extend kernel interface for future use
2768
27692004-11-09 Miklos Szeredi <miklos@szeredi.hu>
2770
2771 * Fix 'makeconf.sh' to use autoreconf if available
2772
27732004-11-08 Miklos Szeredi <miklos@szeredi.hu>
2774
2775 * Add ino argument to 'fuse_dirfil_t'. NOTE: This breaks source
2776 compatibility with earlier versions. To compile earier versions
2777 just add '-DFUSE_DIRFIL_COMPAT' compile flag or fix the source.
2778 Do not use the "use_ino" mount flag with filesystems compiled with
2779 FUSE_DIRFIL_COMPAT.
2780
2781 * Add pkg-config support. To compile a FUSE based filesystem you
2782 can do "gcc -Wall `pkg-config --cflags --libs fuse` myfs.c -o myfs"
2783 or similar. Note, that the PKG_CONFIG_PATH environment variable
2784 usually needs to be set to "/usr/local/lib/pkgconfig".
2785
2786 * fuse.h is now installed in ${prefix}/include/fuse/
2787
27882004-11-02 Miklos Szeredi <miklos@szeredi.hu>
2789
2790 * Added "use_ino" mount option. This enables the filesystems to
2791 set the st_ino field on files
2792
27932004-11-01 Miklos Szeredi <miklos@szeredi.hu>
2794
2795 * Fix compile problems with ancient (<=2.4.18) kernels (reported
2796 by Jeremy Smith)
2797
2798 * Add "allow_root" mount option. Patch by Yaroslav Rastrigin
2799
2800 * Clear the 'exited' flag when mail loop is finished
2801
28022004-10-28 Miklos Szeredi <miklos@szeredi.hu>
2803
2804 * Make xattr functions work under 2.6 (bug found by Vincenzo
2805 Ciancia)
2806
28072004-10-26 Miklos Szeredi <miklos@szeredi.hu>
2808
2809 * Reset request in fuse_flush() (bugreport by David Shaw)
2810
28112004-10-21 Miklos Szeredi <miklos@szeredi.hu>
2812
2813 * fuse_main() now does not exit on error, rather it returns an
2814 error code
2815
2816 * Exported __fuse_setup() and __fuse_teardown() functions, which
2817 make it easier to implement a custom event loop.
2818
2819 * Use daemon() call to background the filesystem after mounting.
2820 This function closes the standard input, output and error and
2821 changes the current working directory to "/".
2822
28232004-10-14 Miklos Szeredi <miklos@szeredi.hu>
2824
2825 * Released 1.9
2826
28272004-10-09 Miklos Szeredi <miklos@szeredi.hu>
2828
2829 * Don't allow fuse_flush() to be interrupted (bug found by David
2830 Shaw)
2831
28322004-09-27 Miklos Szeredi <miklos@szeredi.hu>
2833
2834 * Add PID to fuse_context. Patch by Steven James
2835
2836 * Change file handle type to 'unsigned long' in kernel interface
2837
28382004-09-22 Miklos Szeredi <miklos@szeredi.hu>
2839
2840 * A slight API change: fuse_get_context() doesn't need the "fuse"
2841 pointer, but the returned context contains it instead. The
2842 fuse_get() function is not needed anymore, so it's removed.
2843
2844 * Fix mounting and umounting FUSE filesystem under another FUSE
2845 filesystem by non-root (bug spotted by Valient Gough)
2846
28472004-09-21 Miklos Szeredi <miklos@szeredi.hu>
2848
2849 * Fix deadlock in case of memory allocation failure. Patch by
2850 Christian Magnusson
2851
28522004-09-16 Miklos Szeredi <miklos@szeredi.hu>
2853
2854 * Check memory allocation failures in libfuse
2855
28562004-09-14 Miklos Szeredi <miklos@szeredi.hu>
2857
2858 * Check temporary file creation failure in do_getdir(). Bug
2859 spotted by Terje Oseberg
2860
28612004-09-13 Miklos Szeredi <miklos@szeredi.hu>
2862
2863 * Allow "large_read" option for 2.6 kernels but warn of deprecation
2864
2865 * Make requests non-interruptible so race with FORGET is avoided.
2866 This is only a temporary solution
2867
2868 * Support compiling FUSE kernel module on 2.4.x UML kernels
2869
28702004-09-09 Miklos Szeredi <miklos@szeredi.hu>
2871
2872 * Fix bug in case two FORGETs for the same node are executed in
2873 the wrong order. Bug spotted and endured for months by Franco
2874 Broi, and logfile for solution provided by Terje Oseberg
2875
28762004-09-01 Miklos Szeredi <miklos@szeredi.hu>
2877
2878 * Add -D_REENTRANT to the compile flags
2879
2880 * Add documentation of fuse internals by Terje Oseberg
2881
28822004-08-16 Miklos Szeredi <miklos@szeredi.hu>
2883
2884 * Change release method to be non-interruptible. Fixes bug
2885 causing missing release() call when program which has opened files
2886 is killed (reported by Franco Broi and David Shaw)
2887
28882004-07-29 Miklos Szeredi <miklos@szeredi.hu>
2889
2890 * Add fuse_invalidate() to library API
2891
28922004-07-26 Miklos Szeredi <miklos@szeredi.hu>
2893
2894 * Check permissions in setattr if 'default_permissions' flag is
2895 set. Bug spotted by Damjan Lango
2896
28972004-07-24 Miklos Szeredi <miklos@szeredi.hu>
2898
2899 * 'large_read' mount option removed for 2.6 kernels, since the
2900 default (dynamic read size) is better
2901
2902 * Extend kernel API with file handles. A file handle is returned
2903 by open, and passed to read, write, flush, fsync and release.
2904 This is currently only used for debug output in the library.
2905
2906 * Security changes:
2907
2908 * Change the current directory to the mountpoint before checking
2909 the permissions and mount filesystem on "."
2910
2911 * By default don't modprobe the fuse module for non-root. The old
2912 behavior can be restored with the '--enable-auto-modprobe' flag of
2913 ./configure
2914
2915 * By default don't allow shared writable mappings for non-root.
2916 The old behavior can be restored with the 'user_mmap=1' module
2917 parameter
2918
29192004-07-23 Miklos Szeredi <miklos@szeredi.hu>
2920
2921 * Clean up mount option passing to fusermount and to fuse_new()
2922 BEWARE: this changes the userspace API slightly, and the command
2923 line usage of programs using fuse_main()
2924
29252004-07-20 Miklos Szeredi <miklos@szeredi.hu>
2926
2927 * Optimize reading under 2.6 kernels by issuing multiple page
2928 asynchronous read requests
2929
29302004-07-18 Miklos Szeredi <miklos@szeredi.hu>
2931
2932 * Only use redirty_page_for_writepage() for kernels >= 2.6.6
2933
29342004-07-16 Miklos Szeredi <miklos@szeredi.hu>
2935
2936 * Separate directory entry and inode attribute validity timer
2937
2938 * New write semaphore to stop page writeback during truncate
2939
2940 * Fsync now waits for all writes to complete before sending the
2941 request
2942
2943 * Optimization: if a page is completely written by
2944 fuse_commit_write(), clear the dirty flag and set the uptodate
2945 flag for that page
2946
2947 * Some memory cleanup at exit
2948
29492004-07-13 Miklos Szeredi <miklos@szeredi.hu>
2950
2951 * Add FUSE_HARD_REMOVE flag, and '-i' option to fuse main, which
2952 disable the "hide if open" behavior of unlink/rename.
2953
2954 * If temporary buffer allocation fails in raw read, fall back to a
2955 smaller buffer
2956
29572004-07-12 Miklos Szeredi <miklos@szeredi.hu>
2958
2959 * Fix bug in do_open() in libfuse: open count was incremented
2960 after the reply is sent so it could race with unlink/forget and
2961 cause an abort.
2962
29632004-07-08 Miklos Szeredi <miklos@szeredi.hu>
2964
2965 * When performing create or remove operation, refresh the parent's
2966 attributes on next revalidate, as i_nlink (and maybe size/time)
2967 could be inacurate.
2968
2969 * Use redirty_page_for_writepage() in fuse_writepage() for skipped
2970 pages (2.6 only)
2971
2972 * Set set_page_dirty address space operation (2.6 only)
2973
29742004-07-06 Miklos Szeredi <miklos@szeredi.hu>
2975
2976 * Minor fix in read: print debug info even if read size is zero
2977
29782004-07-04 Miklos Szeredi <miklos@szeredi.hu>
2979
2980 * Fix race between truncate and writepage (fsx-linux now runs
2981 without error)
2982
29832004-07-02 Miklos Szeredi <miklos@szeredi.hu>
2984
2985 * Fix kernel hang on mkfifo under 2.4 kernels (spotted and patch
2986 by Mattias Wadman)
2987
2988 * Added option for direct read/write (-r)
2989
2990 * Fix revalidate time setting for newly created inodes
2991
2992 * Remove uid==0 check for '-x' option in fusermount (kernel checks
2993 this)
2994
2995 * fuse_main() only installs handlers for signals (out of INT, HUP,
2996 TERM, PIPE), for which no handler has yet been installed
2997
2998 * Add module option 'user_allow_other' which if set to non-zero
2999 will allow non root user to specify the 'allow_other' mount option
3000 ('-x' option of fusermount)
3001
3002 * Fix deadlock between page writeback completion and truncate
3003 (bug found by Valient Gough with the fsx-linux utility)
3004
30052004-07-01 Miklos Szeredi <miklos@szeredi.hu>
3006
3007 * Change passing fuse include dir to 2.6 kernel make system more
3008 robust (fixes compile problems seen on SuSE 9.1 with updated 2.6
3009 kernel)
3010
30112004-06-30 Miklos Szeredi <miklos@szeredi.hu>
3012
3013 * Acquire inode->i_sem before open and release methods to prevent
3014 concurrent rename or unlink operations.
3015
3016 * Make __fuse_read_cmd() read only one command. This allows
3017 multiplexing the fuse file descriptor with other event sources
3018 using select() or poll() (patch by Jeff Harris)
3019
3020 * Export 'exited' flag with __fuse_exited() (patch by Jeff Harris)
3021
30222004-06-27 Miklos Szeredi <miklos@szeredi.hu>
3023
3024 * Fix file offset wrap around at 4G when doing large reads
3025
30262004-06-24 Miklos Szeredi <miklos@szeredi.hu>
3027
3028 * Fix memory leak in open (Valient Gough)
3029
30302004-06-24 Miklos Szeredi <miklos@szeredi.hu>
3031
3032 * Add "close after delete" support to libfuse (patch by Valient
3033 Gough)
3034
3035 * Cancel all worker threads before exit in multithreaded mode
3036
30372004-06-23 Miklos Szeredi <miklos@szeredi.hu>
3038
3039 * Fix locking bugs
3040
3041 * Don't send reply to RELEASE
3042
3043 * Work with newer libtool (1.5a)
3044
3045 * Check for st_atim member of struct stat
3046
30472004-06-22 Miklos Szeredi <miklos@szeredi.hu>
3048
3049 * No request allocation needed on inode and file release
3050
30512004-06-21 Miklos Szeredi <miklos@szeredi.hu>
3052
3053 * Fix possible inode leak in userspace in case of unfinished
3054 lookup/mknod/mkdir/symlink/link operation.
3055
30562004-06-20 Miklos Szeredi <miklos@szeredi.hu>
3057
3058 * Fix some races and cleanups in fuse_read_super()
3059
30602004-06-19 Miklos Szeredi <miklos@szeredi.hu>
3061
3062 * Requests are allocated at open time
3063
30642004-06-03 Miklos Szeredi <miklos@szeredi.hu>
3065
3066 * Build shared library as well as static (using libtool)
3067
3068 * Change FUSE_MINOR_VERSION from 1 to 0. I know it's illegal but
3069 there has not been a release with the previous minor number, and I
3070 hope nobody is using it for anything.
3071
3072 * Change fuse_main(), so that default behavior is to go into
3073 background if mount is successful. '-f' and '-d' options disable
3074 backgrounding. This fixes the "Why does my FUSE daemon hang?"
3075 newbie complaint.
3076
3077 * Cache ENOSYS (function not implemented) errors on *xattr, flush
3078 and fsync
3079
3080 * Don't call getdir method from open() only from first readdir().
3081 Open is sometimes just used to store the current directory
3082 (e.g. find)
3083
30842004-05-18 Miklos Szeredi <miklos@szeredi.hu>
3085
3086 * Added flush() call
3087
30882004-05-04 Miklos Szeredi <miklos@szeredi.hu>
3089
3090 * Extended attributes support for 2.4 (patch by Cody Pisto)
3091
30922004-04-20 Miklos Szeredi <miklos@szeredi.hu>
3093
3094 * Fixed parser with modversions (Mattias Wadman)
3095
30962004-04-19 Miklos Szeredi <miklos@szeredi.hu>
3097
3098 * Added mount option parser to 2.4 build
3099
31002004-04-13 Miklos Szeredi <miklos@szeredi.hu>
3101
3102 * Replaced binary mount data with text options
3103
3104 * Show FUSE specific mount options in /proc/mounts
3105
3106 * Check in fuse.h whether _FILE_OFFSET_BITS is set to 64
3107
31082004-04-09 Miklos Szeredi <miklos@szeredi.hu>
3109
3110 * Check some limits so userspace won't get too big requests
3111
31122004-04-05 Miklos Szeredi <miklos@szeredi.hu>
3113
3114 * Kill compile warning
3115
3116 * Upgraded user-mount patch for 2.6.5
3117
31182004-04-02 Miklos Szeredi <miklos@szeredi.hu>
3119
3120 * Add detection of user-mode-linux to configure
3121
31222004-03-31 Miklos Szeredi <miklos@szeredi.hu>
3123
3124 * fixed zero size case for getxattr and listxattr
3125
31262004-03-30 Miklos Szeredi <miklos@szeredi.hu>
3127
3128 * new fusermount flag '-z': lazy unmount, default is not lazy
3129
3130 * Extended attributes operations added (getxattr, setxattr,
3131 listxattr, removexattr)
3132
31332004-03-25 Miklos Szeredi <miklos@szeredi.hu>
3134
3135 * If filesystem doesn't define a statfs operation, then an
3136 all-zero default statfs is returned instead of ENOSYS
3137
31382004-03-24 Miklos Szeredi <miklos@szeredi.hu>
3139
3140 * Add FS_BINARY_MOUNTDATA filesystem flag for kernels > 2.6.4
3141
31422004-03-09 Miklos Szeredi <miklos@szeredi.hu>
3143
3144 * Fix for uClinux (Christian Magnusson)
3145
31462004-03-02 Miklos Szeredi <miklos@szeredi.hu>
3147
3148 * fuse_main() adds "-n progname" to the fusermount command line
3149
3150 * More kernel interface changes:
3151
3152 * Lookup/getattr return cache timeout values
3153
31542004-02-25 Miklos Szeredi <miklos@szeredi.hu>
3155
3156 * Clean up option parsing in fuse_main()
3157
3158 * Added fuse_get() function which returns the fuse object created
3159 by fuse_main()
3160
31612004-02-20 Miklos Szeredi <miklos@szeredi.hu>
3162
3163 * removed old way of mounting (fusermount mountpoint program)
3164
3165 * more kernel interface changes:
3166
3167 * added nanosecond precision to file times
3168
3169 * removed interface version from mount data
3170
3171 * added /proc/fs/fuse/version which contains MAJOR.MINOR
3172
31732004-02-19 Miklos Szeredi <miklos@szeredi.hu>
3174
3175 * statfs library API changed to match other methods. Since this
3176 is not backward compatible FUSE_MAJOR_VERSION is changed to 2
3177
3178 * kernel interface changes follow:
3179
3180 * statfs changed to 64 bits, added 'bavail' field
3181
3182 * add generation number to lookup result
3183
3184 * optimized mknod/mkdir/symlink/link (no separate lookup is
3185 needed)
3186
3187 * rdev size increased to 32 bits for mknod
3188
3189 * kernel interface version changed to 3.1
3190
31912004-02-18 Miklos Szeredi <miklos@szeredi.hu>
3192
3193 * user-mount upgraded for 2.6.3 kernel
3194
31952004-02-17 Miklos Szeredi <miklos@szeredi.hu>
3196
3197 * Added user-mount.2.6.2-rc3.patch
3198
3199 * Add FS_SAFE flag to fuse filesystem
3200
3201 * fusermount should allow (un)mounting for non-root even if not
3202 suid-root
3203
32042004-02-12 Miklos Szeredi <miklos@szeredi.hu>
3205
3206 * Remove MS_PERMISSION mount flag (that means something else now)
3207
32082004-02-10 Miklos Szeredi <miklos@szeredi.hu>
3209
3210 * Added check for i_size_read/write functions to configure.in
3211 (patch by Valient Gough)
3212
32132004-02-06 Miklos Szeredi <miklos@szeredi.hu>
3214
3215 * Fixed writing >= 2G files
3216
3217 * Check file size on open (with generic_file_open())
3218
3219 * Readpage calls flush_dcache_page() after storing data
3220
3221 * Use i_size_read/write for accessing inode->i_size
3222
3223 * Make loopback mount of a fuse file work
3224
32252004-02-04 Miklos Szeredi <miklos@szeredi.hu>
3226
3227 * Released 1.1
3228
32292004-01-29 Miklos Szeredi <miklos@szeredi.hu>
3230
3231 * Properly check if the inode exists in fuse_invalidate
3232
32332004-01-27 Miklos Szeredi <miklos@szeredi.hu>
3234
3235 * Added -q option for fusermount
3236
3237 * fuse_unmount() now uses -q option of fusermount, so no error is
3238 printed if the cause of the program exit is that the filesystem
3239 has already been unmounted
3240
3241 * Fix i_nlink correctness after rmdir/unlink
3242
32432004-01-26 Miklos Szeredi <miklos@szeredi.hu>
3244
3245 * Released 1.1-pre2
3246
32472004-01-26 Miklos Szeredi <miklos@szeredi.hu>
3248
3249 * Fix typo (thanks Marcos Dione)
3250
3251 * Compile fixes for 2.4 kernels
3252
32532004-01-23 Miklos Szeredi <miklos@szeredi.hu>
3254
3255 * Fix CONFIG_MODVERSIONS compile on 2.6
3256
32572004-01-22 Miklos Szeredi <miklos@szeredi.hu>
3258
3259 * Write all pending data before a RELEASE operation
3260
3261 * Suppress 'Bad file descriptor' warning on exit
3262
3263 * Replaced fusermount option '-d xxx' with '-n xxx' so it doesn't
3264 get confused with '-d' of fuse_main() (sorry about this change)
3265
3266 * New fusermount option '-l' which enables big reads. Big reads
3267 are now disabled by default.
3268
3269 * fuse_main() can accept fusermount arguments after a '--'
3270
32712004-01-19 Miklos Szeredi <miklos@szeredi.hu>
3272
3273 * Support for exporting filesystem over NFS (see README.NFS)
3274
32752004-01-14 Miklos Szeredi <miklos@szeredi.hu>
3276
3277 * Support non-blocking writepage on 2.6. This makes FUSE behave
3278 much more nicely in low-memory situations
3279
3280 * Fix 32-bit dev handling in getattr and mknod for 2.6 kernels.
3281 (Note: the mknod method does not yet use 32bit device number)
3282
32832004-01-13 Miklos Szeredi <miklos@szeredi.hu>
3284
3285 * Code cleanups
3286
32872004-01-07 Miklos Szeredi <miklos@szeredi.hu>
3288
3289 * Released 1.1-pre1
3290
32912004-01-06 Miklos Szeredi <miklos@szeredi.hu>
3292
3293 * Integrated 2.6 kernel support patch by Michael Grigoriev
3294
3295 * Improvements and cleanups for 2.6 kernels
3296
32972004-01-05 Miklos Szeredi <miklos@szeredi.hu>
3298
3299 * Added -d option to fusermount
3300
33012003-12-15 Miklos Szeredi <miklos@szeredi.hu>
3302
3303 * Added major+minor version to library API, and minor version to
3304 kernel API
3305
33062003-12-13 David McNab <david@rebirthing.co.nz>
3307
3308 * Implemented fsync support in examples/example.py
3309
3310 * Implemented 'fsync' and 'statfs' methods in python
3311 interface
3312
33132003-12-12 Miklos Szeredi <miklos@szeredi.hu>
3314
3315 * Make it compile on 2.4.19.
3316
3317 * Add fsync operation (write file failed on xemacs & vi)
3318
33192003-12-12 David McNab <david@rebirthing.co.nz>
3320
3321 * Added distutils support to the python module, as per standard
3322 python development practice
3323
33242003-12-11 Miklos Szeredi <miklos@szeredi.hu>
3325
3326 * Add file locking for mount/unmount (based on patch by Valient
3327 Gough)
3328
33292003-12-11 David McNab <david@rebirthing.co.nz>
3330
3331 * Python filesystem - was broken with python2.3, now fixed:
3332 - changed PyTuple_* calls to PySequence_*, because os.lstat
3333 is no longer returning a pure tuple
3334 - changed PyInt_Check() calls to also call PyLong_Check,
3335 to cover for cases (eg os.lstat) where longs are returned
3336 - Added support for file 'release' handling, which IMO is
3337 essential since this signals to a FS that writes to a file
3338 are complete (and therefore the file can now be disposed of
3339 meaningfully at the python filesystem's discretion)
3340 - Added '__init__' handler to base Fuse class, which allows
3341 your Python class to know the mountpoint and mount args,
3342 as attributes myfs.mountpoint, myfs.optlist, myfs.optdict
3343
3344 * General:
3345 - added 'mount.fuse' script (in util/ dir), which is meant to be
3346 symlinked from /sbin, and which allows FUSE filesystems to
3347 be mounted with the 'mount' command, and listed in fstab;
3348 also, mount arguments get passed to your filesystem
3349
3350
33512003-11-04 Miklos Szeredi <miklos@szeredi.hu>
3352
3353 * Fix kernel version detection (again). Bugreport by Peter Levart
3354
33552003-11-03 Miklos Szeredi <miklos@szeredi.hu>
3356
3357 * Applied read combining patch by Michael Grigoriev (tested by
3358 Valient Gough and Vincent Wagelaar)
3359
33602003-10-22 Miklos Szeredi <miklos@szeredi.hu>
3361
3362 * Mtab handling fix in fusermount by "Valient Gough" (SF patch
3363 #766443)
3364
33652003-10-13 Miklos Szeredi <miklos@szeredi.hu>
3366
3367 * Error code fixes in kernel module
3368
33692003-10-04 Miklos Szeredi <miklos@szeredi.hu>
3370
3371 * kernel version detection fix
3372
3373 * fusermount now uses "lazy" umount option
3374
3375 * fusermount can use modprobe with module-init-tools
3376
33772003-09-08 Miklos Szeredi <miklos@szeredi.hu>
3378
3379 * Integrated caching patch by Michael Grigoriev
3380
3381 * Added "Filesystems" file with descriptions of projects using
3382 FUSE
3383
3384 * Added patch by Michael Grigoriev to allow compliation of FUSE
3385 kernel module for 2.6 kernels
3386
33872003-06-02 Miklos Szeredi <miklos@szeredi.hu>
3388
3389 * And another spec-file fix by Achim Settelmeier
3390
33912003-05-26 Miklos Szeredi <miklos@szeredi.hu>
3392
3393 * Spec-file fix by Achim Settelmeier
3394
33952003-03-10 Miklos Szeredi <miklos@szeredi.hu>
3396
3397 * Fix umount oops (found by Samuli Kärkkäinen)
3398
33992003-03-05 Miklos Szeredi <miklos@szeredi.hu>
3400
3401 * Merge of fuse_redhat.spec and fuse.spec by Achim Settelmeier
3402
34032003-03-04 Miklos Szeredi <miklos@szeredi.hu>
3404
3405 * Updated fuse.spec file (Achim Settelmeier)
3406
34072003-02-19 Miklos Szeredi <miklos@szeredi.hu>
3408
3409 * Version 1.0 released
3410
34112003-02-12 Miklos Szeredi <miklos@szeredi.hu>
3412
3413 * SuSE compilation fix by Juan-Mariano de Goyeneche
3414
34152002-12-10 Miklos Szeredi <miklos@szeredi.hu>
3416
3417 * The release() VFS call is now exported to the FUSE interface
3418
34192002-12-05 Miklos Szeredi <miklos@szeredi.hu>
3420
3421 * 64 bit file offset fixes in the fuse kernel module
3422
3423 * Added function 'fuse_exit()' which can be used to exit the main
3424 loop
3425
34262002-12-03 Miklos Szeredi <miklos@szeredi.hu>
3427
3428 * Added _FILE_OFFSET_BITS=64 define to fuse.h. Note, that this is
3429 an incompatible interface change.
3430
34312002-10-28 Miklos Szeredi <miklos@szeredi.hu>
3432
3433 * Portablility fix (bug reported by C. Chris Erway)
3434
34352002-10-25 Miklos Szeredi <miklos@szeredi.hu>
3436
3437 * Use Mark Glines' fd passing method for default operation instead
3438 of old reexec
3439
34402002-10-22 Miklos Szeredi <miklos@szeredi.hu>
3441
3442 * fix "Stale NFS file handle" bug caused by changes in 2.4.19
3443
34442002-10-22 Miklos Szeredi <miklos@szeredi.hu>
3445
3446 * fix incompatiblity with Red Hat kernels, with help from Nathan
3447 Thompson-Amato.
3448
34492002-04-18 Mark Glines <mark@glines.org>
3450
3451 * added an alternative to fuse_mount(), called
3452 fuse_mount_ioslave(), which does not need to reexec the
3453 FUSE program.
3454 * added a small helper util needed by fuse_mount_ioslave().
3455
34562002-03-16 Mark Glines <mark@glines.org>
3457
3458 * use struct fuse_statfs everywhere possible to avoid problems
3459 with the headerfiles changing struct statfs member sizes
3460
34612002-03-01 Miklos Szeredi <miklos@szeredi.hu>
3462
3463 * Another RPM spec file for RedHat >= 7 by Ian Pilcher
3464
34652002-01-14 Miklos Szeredi <miklos@szeredi.hu>
3466
3467 * RPM support by Achim Settelmeier
3468
34692002-01-09 Miklos Szeredi <miklos@szeredi.hu>
3470
3471 * Version 0.95 released
3472
34732002-01-09 Miklos Szeredi <miklos@szeredi.hu>
3474
3475 * Revaidate all path components not just the last, this means a
3476 very small performance penalty for being more up-to-date.
3477
34782002-01-08 Miklos Szeredi <miklos@szeredi.hu>
3479
3480 * Update and fix python interface
3481
34822002-01-07 Mark Glines <mark@glines.org>
3483
3484 * Added statfs() support to kernel, lib, examples, and perl!
3485
34862001-12-26 Miklos Szeredi <miklos@szeredi.hu>
3487
3488 * Better cross compilation support
3489
3490 * Ported to Compaq IPAQ
3491
34922001-12-20 Miklos Szeredi <miklos@szeredi.hu>
3493
3494 * Added function fuse_get_context() to library API (inspired by
3495 patch from Matt Ryan)
3496
3497 * Added flags to fusermount and to kernel interface to control
3498 permission checking
3499
3500 * Integrated fuse_set_operations() into fuse_new()
3501
35022001-12-08 Miklos Szeredi <miklos@szeredi.hu>
3503
3504 * Applied header protection + extern "C" patch by Roland
3505 Bauerschmidt
3506
35072001-12-02 Miklos Szeredi <miklos@szeredi.hu>
3508
3509 * Added perl bindings by Mark Glines
3510
35112001-11-21 Miklos Szeredi <miklos@szeredi.hu>
3512
3513 * Cleaned up way of mounting simple filesystems.
3514
3515 * fuse_main() helper function added
3516
35172001-11-18 Miklos Szeredi <miklos@szeredi.hu>
3518
3519 * Optimized read/write operations, so that minimal copying of data
3520 is done
3521
35222001-11-14 Miklos Szeredi <miklos@szeredi.hu>
3523
3524 * Python bindings by Jeff Epler added
3525
35262001-11-13 Miklos Szeredi <miklos@szeredi.hu>
3527
3528 * Fixed vfsmount reference leak in fuse_follow_link
3529
3530 * FS blocksize is set to PAGE_CACHE_SIZE, blksize attribute from
3531 userspace is ignored
3532
35332001-11-09 Miklos Szeredi <miklos@szeredi.hu>
3534
3535 * Started ChangeLog