1FUSE 2.9.9 (2019-01-04) 2======================= 3 4* Added OpenAFS to whitelist (so users can now mount FUSE filesystems 5 on mountpoints within OpenAFS filesystems). 6* Added a test of `seekdir` to test_syscalls. 7* Fixed `readdir` bug when non-zero offsets are given to filler and the 8 filesystem client, after reading a whole directory, re-reads it from a 9 non-zero offset e. g. by calling `seekdir` followed by `readdir`. 10 11FUSE 2.9.8 (2018-07-24) 12======================= 13 14* SECURITY UPDATE: In previous versions of libfuse it was possible to 15 for unprivileged users to specify the `allow_other` option even when 16 this was forbidden in `/etc/fuse.conf`. The vulnerability is 17 present only on systems where SELinux is active (including in 18 permissive mode). 19* libfuse no longer segfaults when fuse_interrupted() is called outside 20 the event loop. 21* The fusermount binary has been hardened in several ways to reduce 22 potential attack surface. Most importantly, mountpoints and mount 23 options must now match a hard-coded whitelist. It is expected that 24 this whitelist covers all regular use-cases. 25* Fixed rename deadlock on FreeBSD. 26 27FUSE 2.9.7 (2016-06-20) 28======================= 29 30* Added SELinux support. 31* Fixed race-condition when session is terminated right after starting 32 a FUSE file system. 33 34FUSE 2.9.6 (2016-04-23) 35======================= 36 37* Tarball now includes documentation. 38* Shared-object version has now been bumped correctly. 39 40FUSE 2.9.5 (2016-01-14) 41======================= 42 43* New maintainer: Nikolaus Rath <Nikolaus@rath.org>. Many thanks to 44 Miklos Szeredi <miklos@szeredi.hu> for bringing FUSE to where it is 45 now! 46 47* fix warning in mount.c:receive_fd(). Reported by Albert Berger 48 49* fix possible memory leak. Reported by Jose R. Guzman 50 51FUSE 2.9.4 (2015-05-22) 52======================= 53 54* fix exec environment for mount and umount. Found by Tavis Ormandy 55 (CVE-2015-3202). 56 57* fix fuse_remove_signal_handlers() to properly restore the default 58 signal handler. Reported by: Chris Johnson 59 60* highlevel API: fix directory file handle passed to ioctl() method. 61 Reported by Eric Biggers 62 63* libfuse: document deadlock avoidance for fuse_notify_inval_entry() 64 and fuse_notify_delete() 65 66* fusermount, libfuse: send value as unsigned in "user_id=" and 67 "group_id=" options. Uids/gids larger than 2147483647 would result 68 in EINVAL when mounting the filesystem. This also needs a fix in 69 the kernel. 70 71* Initilaize stat buffer passed to ->getattr() and ->fgetattr() to 72 zero in all cases. Reported by Daniel Iwan 73 74* libfuse: Add missing includes. This allows compiling fuse with 75 musl. Patch by Daniel Thau 76 77 78Older Versions (before 2013-01-01) 79================================== 80 81 822013-06-20 Miklos Szeredi <miklos@szeredi.hu> 83 84 * libfuse: fix multiple close of device fd. Reported by Dan 85 Greenfield 86 872013-03-19 Miklos Szeredi <miklos@szeredi.hu> 88 89 * libfuse: fix thread cancel race. Exiting a worker my race with 90 cancelling that same worker. This caused a segmenation 91 fault. Reported and tested by Anatol Pomozov 92 932013-02-04 Miklos Szeredi <miklos@szeredi.hu> 94 95 * libfuse: fix crash in unlock_path(). Patch by Ratna Manoj 96 97 * libfuse: fix the 'remember' option. The lru list was not 98 initialized for the "/" path. This resulted in remove_node_lru() 99 crashing on LOOKUP-DOTDOT. Patch by Madan Valluri 100 101 * libfuse: configure: detect new util-linux 102 103 * libfuse: Use AC_CONFIG_HEADERS instead of AM_CONFIG_HEADER. 104 Patch by Anatol Pomozov 105 106 * libfuse: rename ./configure.in to ./configure.ac. Patch by 107 Anatol Pomozov 108 1092012-10-01 Miklos Szeredi <miklos@szeredi.hu> 110 111 * Released 2.9.2 112 1132012-10-01 Miklos Szeredi <miklos@szeredi.hu> 114 115 * Fix deadlock in libfuse. Running "svn update" on a fuse 116 filesystem could deadlock because of a bug in the way the paths 117 are locked. Reported by Kazuaki Anami 118 1192012-08-23 Miklos Szeredi <miklos@szeredi.hu> 120 121 * Fix missing config.h in buffer.c. Reported by Matthew Gabeler-Lee 122 1232012-08-14 Miklos Szeredi <miklos@szeredi.hu> 124 125 * Not unhashing the name in forget (commit on 2011-12-09) broke 126 the forget logic in a subtle way, resulting in "fuse internal 127 error: node NNN not found" and causing the filesystem daemon to 128 abort. Fix by incrementing the node refcount if nlookup goes from 129 zero to one. Reported by Kyle Lippincott 130 1312012-08-13 Miklos Szeredi <miklos@szeredi.hu> 132 133 * Fix linking against GNU libiconv. Patch by Natanael Copa 134 1352012-07-19 Miklos Szeredi <miklos@szeredi.hu> 136 137 * Released 2.9.1 138 1392012-07-19 Miklos Szeredi <miklos@szeredi.hu> 140 141 * Fix crash caused by freeing a stack address. Reported by Itay 142 Perl 143 1442012-07-04 Miklos Szeredi <miklos@szeredi.hu> 145 146 * Fix install of mount.fuse from out-of-tree build. Patch by 147 Olivier Blin 148 149 * Fix build with automake >= 1.12.1. Patch by Olivier Blin 150 1512012-04-24 Miklos Szeredi <miklos@szeredi.hu> 152 153 * Add fallocate operation. Only works on linux kernels 3.5 or 154 later. Patch by Anatol Pomozov 155 1562012-05-16 Miklos Szeredi <miklos@szeredi.hu> 157 158 * Linking to a library that uses threads requires the application 159 to be linked with -pthreads otherwise some pthread functions will 160 be linked to stubs in glibc. So move -pthread from Libs.private 161 to Libs in fuse.pc. Reported by Werner Fink 162 163 * Fix the compile command in the examples. Reported by Luciano 164 Dalle Ore 165 1662012-04-20 Miklos Szeredi <miklos@szeredi.hu> 167 168 * Released 2.9.0 169 1702012-04-20 Miklos Szeredi <miklos@szeredi.hu> 171 172 * Add missing fuse_fs_flock to fuse_versionscript 173 1742012-04-10 Miklos Szeredi <miklos@szeredi.hu> 175 176 * Check protocol version before sending notifications and return 177 -ENOSYS if a particular notification is not supported. 178 179 * Add 'flag_utime_omit_ok' flag to fuse_operations. If the 180 filesystem sets this flag then ->utimens() will receive UTIME_OMIT 181 and UTIME_NOW values as specified in utimensat(2). 182 1832012-01-27 Miklos Szeredi <miklos@szeredi.hu> 184 185 * Interpret octal escape codes in options. Requested by Jan 186 Engelhardt 187 1882012-01-26 Miklos Szeredi <miklos@szeredi.hu> 189 190 * Add man pages for fusermount, mount.fuse and ulockmgr_server. 191 Lifted from the Debian package. The man pages were written by 192 Daniel Baumann and Bastien Roucaries 193 1942012-01-13 Miklos Szeredi <miklos@szeredi.hu> 195 196 * Disable symbol versions on MacOSX. Patch by Anatol Pomozov 197 1982012-01-02 Miklos Szeredi <miklos@szeredi.hu> 199 200 * Remove unnecessary mutex unlock at the end of multithreaded 201 event loop. 202 2032011-12-09 Miklos Szeredi <miklos@szeredi.hu> 204 205 * Fix hang in wait_on_path(). Reported by Ville Silventoinen 206 207 * Don't unhash name in FORGET. This resulted in ENOENT being 208 returned for unlinked but still open files if the kernel sent a 209 FORGET request for the parent directory. 210 211 * Free request in fuse_reply_data(). 212 2132011-12-08 Miklos Szeredi <miklos@szeredi.hu> 214 215 * Fix build if FUSE_NODE_SLAB is not defined. Patch by Emmanuel 216 Dreyfus 217 218 * Check for availability of utimensat() function. Patch by 219 Emmanuel Dreyfus 220 2212011-12-07 Miklos Szeredi <miklos@szeredi.hu> 222 223 * Add fuse_lowlevel_notify_delete() which tells the kernel that a 224 file or directory is deleted. Patch by John Muir 225 2262011-12-06 Miklos Szeredi <miklos@szeredi.hu> 227 228 * Update retrieve_reply() method 229 2302011-12-05 Miklos Szeredi <miklos@szeredi.hu> 231 232 * Low level API: lock argument of fuse_reply_lock should have a 233 'const' qualifier. Reported by Shachar Sharon 234 235 * Add support for ioctl on directories. Reported by Antonio SJ 236 Musumeci 237 2382011-10-13 Miklos Szeredi <miklos@szeredi.hu> 239 240 * Reply to request with ENOMEM in case of failure to allocate 241 request structure. Otherwise the task issuing the request will 242 just freeze up until the filesystem daemon is killed. Reported by 243 Stephan Kulow 244 2452011-09-23 Miklos Szeredi <miklos@szeredi.hu> 246 247 * Replace daemon() function with fork(). Patch by Anatol Pomozov 248 2492011-08-26 Miklos Szeredi <miklos@szeredi.hu> 250 251 * If configured with --disable-mtab then don't call mount(8) from 252 libfuse to update the mtab. Reported by: James Sierp 253 2542011-08-24 Miklos Szeredi <miklos@szeredi.hu> 255 256 * Use LRU list for cleaning up the cache if the "remember=T" 257 option was given. Patch by therealneworld@gmail.com 258 2592011-07-06 Miklos Szeredi <miklos@szeredi.hu> 260 261 * Add ->flock() operation to low and high level interfaces. This 262 fixes problems with emulating flock() with POSIX locking. 263 Reported by Sebastian Pipping. As with lock/setlk/getlk most 264 filesystems don't need to implement this, as the kernel takes care 265 of file locking. The only reason to implement locking operations 266 is for network filesystems which want file locking to work between 267 clients. 268 2692011-07-02 Sebastian Pipping <sebastian@pipping.org> 270 271 * Make xmp_utimens of examples "fusexmp" and "fusexmp_fh" 272 not follow symlinks as other layers do that already. 273 2742011-06-02 Miklos Szeredi <miklos@szeredi.hu> 275 276 * Add "remember" option. This works similar to "noforget" except 277 that eventually the node will be allowed to expire from the cache. 278 Patch by therealneworld@gmail.com 279 2802011-05-27 Miklos Szeredi <miklos@szeredi.hu> 281 282 * Check if splice/vmsplice are supported 283 2842011-05-26 Miklos Szeredi <miklos@szeredi.hu> 285 286 * Remove -lrt -ldl from fuse.pc for dynamic linking since 287 libfuse.so is already linked with these libraries. Reported by: 288 Nikolaus Rath 289 2902011-05-20 Miklos Szeredi <miklos@szeredi.hu> 291 292 * Cleaner build output. Patch by Reuben Hawkins 293 2942011-05-19 Miklos Szeredi <miklos@szeredi.hu> 295 296 * Disable splice by default, add "splice_read", "splice_write" and 297 "splice_move" options. Keep the "no_splice_*" variants, which can 298 disable splice even if the filesystem explicitly enables it. 299 3002011-04-15 Max Krasnyansky <maxk@kernel.org> 301 * Added support for "auto_unmount" option which unmounts the 302 filesystem automatically on process exit (or crash). 303 3042011-03-30 Miklos Szeredi <miklos@szeredi.hu> 305 306 * Patches by Laszlo Papp fixing various issues found by the 307 Coverity checker 308 3092011-03-11 Miklos Szeredi <miklos@szeredi.hu> 310 311 * In case of failure to add to /etc/mtab don't umount. Reported 312 by Marc Deslauriers 313 3142011-02-02 Miklos Szeredi <miklos@szeredi.hu> 315 316 * libfuse: In fuse_session_loop_mt() don't pause when exiting the 317 worker threads. The pause() was added in 2.2.1 to prevent 318 segfault on pthread_cancel() on an exited, detached thread. Now 319 worker threads are not detached and pthread_cancel() should work 320 fine even after the thread exited. Reported by Boris Protopopov 321 3222011-01-31 Miklos Szeredi <miklos@szeredi.hu> 323 324 * fusermount: chdir to / before performing mount/umount 325 326 * fusermount: only allow mount and umount if util-linux supports 327 --no-canonicalize 328 3292010-12-16 Miklos Szeredi <miklos@szeredi.hu> 330 331 * Highlevel lib: allow hash tables to shrink 332 333 * Highlevel lib: add slab allocation for node cache. This will 334 allow the memory used by the filesystem to grow and shrink 335 depending on how many inodes are currently cached. 336 3372010-12-13 Miklos Szeredi <miklos@szeredi.hu> 338 339 * Highlevel lib: use dynamically resized hash table for looking up 340 by name and node ID. 341 3422010-12-07 Miklos Szeredi <miklos@szeredi.hu> 343 344 * Allow batching of forget requests. This allows forget requests 345 to be processed faster and doesn't require a modification to fuse 346 filesystems. Reported by Terje Malmedal 347 348 * Add ->forget_multi() operation to the lowlevel API. The 349 filesystem may implement this to process multiple forget requests 350 in one call 351 352 * Fix the ambiguity of ioctl ABI on the kernel/userspace boundary 353 for 32bit vs. 64bit userspace 354 3552010-11-10 Miklos Szeredi <miklos@szeredi.hu> 356 357 * Add new write_buf() method to the highlevel API. Similarly to 358 the lowlevel write_buf() method, this allows implementing zero 359 copy writes. 360 361 * Add a new read_buf() method to the highlevel API. This allows 362 returning a generic buffer from the read method, which in turn 363 allows zero copy reads. 364 365 * In fusexmp_fh implement the ->read_buf() and ->write_buf() 366 methods. Leave the ->read() and ->write() implementations for 367 reference, even though they are not necessary. 368 3692010-11-08 Miklos Szeredi <miklos@szeredi.hu> 370 371 * Fix check for read-only fs in mtab update 372 373 * Open /dev/null for write instead of read for redirecting stdout 374 and stderr 375 376 * If umount(8) supports --fake and --no-canonicalize (util-linux-ng 377 version 2.18 or later), and umount(2) supports the 378 UMOUNT_NOFOLLOW flag (linux kernel version 2.6.35 or later) then, 379 "fusermount -u" will call the umount(2) system call and use 380 "umount --fake ..." to update /etc/mtab 381 382 * Added --disable-legacy-umount option to configure. This 383 disables the runtime checking of umount(8) version. When built 384 with this option then "fusermount -u" will fail if umount(8) 385 doesn't support the --fake and --no-canonicalize options. 386 387 * Fix fuse_buf_copy() if already at the end of the buffers 388 389 * Add new ->write_buf() method to low level interface. This 390 allows passig a generic buffer, either containing a memory buffer 391 or a file descriptor. This allows implementing zero copy writes. 392 393 * Add fuse_session_receive_buf() and fuse_session_process_buf() 394 which may be used in event loop implementations to replace 395 fuse_chan_recv() and fuse_session_process() respectively. 396 397 * Remove unnecessary restoring of current working directory in 398 "fusermount -u" 399 400 * Add ctx->pid to debug output 401 402 * Fix st_nlink value in high level lib if file is unlinked but 403 still open 404 405 * libfuse: add store request. Request data to be stored in the 406 kernel buffers for a given inode. 407 408 * libfuse: add retrieve request. Retrieve data stored in the 409 kernel buffers for a given inode. 410 4112010-10-14 Miklos Szeredi <miklos@szeredi.hu> 412 413 * Use LTLIBICONV when linking libfuse. This fixes building against 414 uclibc + libiconv. Patch by Natanael Copa 415 4162010-10-05 Miklos Szeredi <miklos@szeredi.hu> 417 418 * Add missing argument check in ulockmgr.c to prevent calling 419 ulockmgr_server with illegal arguments. This would cause an ever 420 growing list of ulockmgr_server processes with an endless list of 421 open files which finally exceeds the open file handle limit. 422 Patch by Markus Ammer 423 4242010-09-28 Miklos Szeredi <miklos@szeredi.hu> 425 426 * Fix ambiguous symbol version for fuse_chan_new. 427 fuse_versionscript included fuse_chan_new in both FUSE_2.4 and 428 FUSE_2.6. Remove the FUSE_2.4, which is invalid. 429 4302010-09-28 Miklos Szeredi <miklos@szeredi.hu> 431 432 * Fix option escaping for fusermount. If the "fsname=" option 433 contained a comma then the option parser in fusermount was 434 confused (Novell bugzilla #641480). Fix by escaping commas when 435 passing them over to fusermount. Reported by Jan Engelhardt 436 4372010-08-27 Miklos Szeredi <miklos@szeredi.hu> 438 439 * Add NetBSD support. Patch from Emmanuel Dreyfus 440 4412010-07-12 Miklos Szeredi <miklos@szeredi.hu> 442 443 * libfuse: add buffer interface. Add a generic buffer interface 444 for use with I/O. Buffer vectors are supplied and each buffer in 445 the vector may be a memory pointer or a file descriptor. 446 447 * The fuse_reply_fd() interface is converted to using buffers. 448 4492010-06-23 Miklos Szeredi <miklos@szeredi.hu> 450 451 * Make the number of max background requests and congestion 452 threshold tunable. New options are "max_background" and 453 "congestion_threshold". Only effective on linux kernel versions 454 2.6.32 or greater. Patch by Csaba Henk 455 4562010-06-17 Miklos Szeredi <miklos@szeredi.hu> 457 458 * Add fuse_reply_fd() reply function to the low level interface. 459 On linux version 2.6.35 or greater this will use splice() to move 460 data directly from a file descriptor to the fuse device without 461 needing to go though a userspace buffer. With the 462 FUSE_REPLY_FD_MOVE flag the kernel will attempt to move the data 463 directly into the filesystem's cache. On earlier kernels it will 464 fall back to an intermediate buffer. The options 465 "no_splice_write" and "no_splice_move" can be used to disable 466 splicing and moving respectively. 467 4682010-06-15 Miklos Szeredi <miklos@szeredi.hu> 469 470 * Fix out-of-source build. Patch by Jörg Faschingbauer 471 472 * Add a "nopath" option and flag, indicating that path argument 473 need not be calculated for the following operations: read, write, 474 flush, release, fsync, readdir, releasedir, fsyncdir, ftruncate, 475 fgetattr, lock, ioctl and poll. 476 4772010-05-10 Miklos Szeredi <miklos@szeredi.hu> 478 479 * Remove "chmod root" from install of fusermount. Reported by 480 Lucas C. Villa Real 481 4822010-04-26 Miklos Szeredi <miklos@szeredi.hu> 483 484 * Released 2.8.4 485 4862010-04-26 Miklos Szeredi <miklos@szeredi.hu> 487 488 * Fix checking for symlinks in umount from /tmp. Reported by Al 489 Viro 490 491 * Fix umounting if /tmp is a symlink. Reported by Franco Broi 492 4932010-02-18 Miklos Szeredi <miklos@szeredi.hu> 494 495 * Fix definition of FUSE_OPT_END for C++. Reported by Tim 496 Bruylants 497 4982010-02-03 Miklos Szeredi <miklos@szeredi.hu> 499 500 * Fix stack alignment for clone() 501 5022010-02-01 Miklos Szeredi <miklos@szeredi.hu> 503 504 * Released 2.8.3 505 5062010-02-01 Miklos Szeredi <miklos@szeredi.hu> 507 508 * Using "--no-canonicalize" with umount(8) conflicts with the race 509 fix, sinceit assumes the supplied path is absolute, while the race 510 fix relies on the path being relative to the current directory. 511 Reported by Tom Rindborg 512 5132010-01-26 Miklos Szeredi <miklos@szeredi.hu> 514 515 * Released 2.8.2 516 5172010-01-21 Miklos Szeredi <miklos@szeredi.hu> 518 519 * Fix race if two "fusermount -u" instances are run in parallel. 520 Reported by Dan Rosenberg 521 522 * Make sure that the path to be unmounted doesn't refer to a 523 symlink 524 5252010-01-14 Miklos Szeredi <miklos@szeredi.hu> 526 527 * Fix compile error on FreeBSD. Patch by Jay Sullivan 528 5292009-12-17 Miklos Szeredi <miklos@szeredi.hu> 530 531 * Use '--no-canonicalize' option of mount(8) (available in 532 util-linux-ng version 2.17 or greater) to avoid calling 533 readling(2) on the newly mounted filesystem before the mount 534 procedure is finished. This has caused a deadlock if "audit" was 535 enabled in the kernel. Also use '--no-canonicalize' for umount to 536 avoid touching the mounted filesystem. 537 5382009-09-11 Miklos Szeredi <miklos@szeredi.hu> 539 540 * Released 2.8.1 541 5422009-08-25 Miklos Szeredi <miklos@szeredi.hu> 543 544 * Fix missing versioned symbol fuse_get_context@FUSE_2.2 545 5462009-08-18 Miklos Szeredi <miklos@szeredi.hu> 547 548 * Released 2.8.0 549 5502009-08-18 Miklos Szeredi <miklos@szeredi.hu> 551 552 * Add missing fuse_session_data to versionscript 553 554 * Make sure all global symbols are prefixed with "fuse_" or "cuse_" 555 5562009-07-16 Miklos Szeredi <miklos@szeredi.hu> 557 558 * Clarify how the protocol version should be negotiated between 559 kernel and userspace. Notably libfuse didn't correctly handle the 560 case when the supported major versions didn't match 561 562 * Add missing pthread link for libulockmgr. Patch by Petr Salinger 563 5642009-07-02 Miklos Szeredi <miklos@szeredi.hu> 565 566 * The context is extended with a 'umask' field. The umask is sent 567 for mknod, mkdir and create requests by linux kernel version 568 2.6.31 or later, otherwise the umask is set to zero. Also 569 introduce a new feature flag: FUSE_CAP_DONT_MASK. If the kernel 570 supports this feature, then this flag will be set in conn->capable 571 in the ->init() method. If the filesystem sets this flag in in 572 conn->want, then the create modes will not be masked. 573 574 * Add low level interfaces for lookup cache and attribute 575 invalidation. This feature is available in linux kernels 2.6.31 576 or later. Patch by John Muir 577 578 * Kernel interface version is now 7.12 579 580 * fusermount: Do not silently ignore command line arguments. 581 Patch by Sebastian Harl 582 5832009-06-19 Miklos Szeredi <miklos@szeredi.hu> 584 585 * Released 2.8.0-pre3 586 5872009-06-19 Miklos Szeredi <miklos@szeredi.hu> 588 589 * Add fuse_getgroups (high level lib) and fuse_req_getgroups (low 590 level lib) functions to query the supplementary group IDs for the 591 current request. Currently this is implemented on Linux by 592 reading from the /proc filesystem. 593 5942009-06-18 Miklos Szeredi <miklos@szeredi.hu> 595 596 * Add "noforget" option to high level lib to prevent ESTALE errors 597 on NFS exported filesystems. This result in paths being cached 598 forever, resulting in ever growing memory usage. Use with care. 599 600 * Add "no_remote_lock" option to disable remote file locking even 601 if the filesystem implements it. With this option locking 602 primitives (flock, lockf, fcntl(F_SETLK)) will still work, but 603 will ignore remotely locked files. 604 605 * CUSE patches from Tejun Heo: 606 607 * Unrestricted ioctl support left some debris. Clean them up: 608 o No reason to pass around pointer to flags. Pass flags directly. 609 o Clean up comment and prototype parameter names. 610 o fuse_lib_ioctl() didn't reply when get_path() failed. Fix it. 611 o Remove unused variables {in|out}_iov from fuse_lib_ioctl(). 612 613 * Add fuse_reply_ioctl_iov() 614 615 * Move fuse_session, fuse_req and fuse_ll definitions to fuse_i.h 616 and make send_reply_iov() and fuse_setup_common() global (also in 617 fuse_i.h). These will be used by CUSE support. 618 619 * Restructure fuse_ll_process() 620 621 * Implement libfuse side of CUSE support. CUSE uses subset of FUSE 622 operations as dir operations don't make sense for CUSE where one 623 instance implements single character device. 624 625 CUSE support comes with its own cuse_lowevel_ops and related 626 initialization and helper functions. Except for initialization, it 627 usage is basically identical to FUSE. 628 629 This patch also adds example/cusexmp.c which can create a character 630 device with name and device number specified on command line. The 631 created device itself is pretty boring. It's a bit bucket supporting 632 read, write and access via ioctl. 633 6342009-06-16 Miklos Szeredi <miklos@szeredi.hu> 635 636 * Add missing fuse_reply_bmap to versionscript. Debian 637 Bug#531329. Reported by Goswin Brederlow 638 6392009-05-27 Miklos Szeredi <miklos@szeredi.hu> 640 641 * Don't call forget_node() if the lookup was negative and write() 642 for the reply returned ENOENT. Reported by John Haxby 643 6442009-05-25 Miklos Szeredi <miklos@szeredi.hu> 645 646 * Add FUSE_CAP_EXPORT_SUPPORT to fuse_common.h 647 6482009-05-08 Miklos Szeredi <miklos@szeredi.hu> 649 650 * Fix missing newlines in some printfs 651 652 * Fix 'make install-strip'. Reported by Dominick Layfield 653 6542009-01-05 Miklos Szeredi <miklos@szeredi.hu> 655 656 * Released 2.8.0-pre2 657 6582008-12-08 Miklos Szeredi <miklos@szeredi.hu> 659 660 * Implement poll support. Patch by Tejun Heo 661 662 * Add missing setattr flags to <fuse_lowlevel.h>. 663 664 * Only pass valid flags to ->setattr(). 665 6662008-12-05 Miklos Szeredi <miklos@szeredi.hu> 667 668 * Implement ioctl support. On high level interface only 669 "restricted" ioctls are supported (which are defined with the 670 _IO(), _IOR(), _IOW() or _IOWR() macros). Unrestricted ioctls 671 will only be allwed to CUSE (Character Device in Userspace) 672 servers. Patch by Tejun Heo 673 6742008-11-28 Miklos Szeredi <miklos@szeredi.hu> 675 676 * If open sets fi->nonseekable, libfuse will tell the kernel that 677 the file is not seekable. Patch by Tejun Heo 678 6792008-11-19 Miklos Szeredi <miklos@szeredi.hu> 680 681 * lowlevel lib: fix deadlock if fuse_reply_* is called from the 682 interrupt handling function. Reported by Tero Marttila 683 6842008-10-16 Miklos Szeredi <miklos@szeredi.hu> 685 686 * Allow commas in options to be escaped with a backslash 687 688 * Add new function: fuse_opt_add_opt_escaped() 689 690 * Add missing fuse_reply_bmap() to the version script 691 6922008-10-14 Miklos Szeredi <miklos@szeredi.hu> 693 694 * Pass current file flags to read and write operations 695 6962008-07-24 Miklos Szeredi <miklos@szeredi.hu> 697 698 * Clean up debug output in highlevel lib 699 7002008-07-10 Miklos Szeredi <miklos@szeredi.hu> 701 702 * Released 2.8.0-pre1 703 7042008-06-27 Miklos Szeredi <miklos@szeredi.hu> 705 706 * Fix handling of (no)suid and (no)dev options if filesystem is 707 mounted from /etc/fstab or via mount(8). Reported by Jan Ondrej. 708 709 * Skip calling mount(8) if /etc/mtab doesn't exist or if it's on a 710 read-only filesystem. This works around issues with certain mount 711 implementations. Reported by Szabolcs Szakacsits. 712 7132008-06-16 Miklos Szeredi <miklos@szeredi.hu> 714 715 * Remove fuse kernel module sources. Linux 2.6.27 will support 716 NFS exporting. 717 7182008-06-10 Miklos Szeredi <miklos@szeredi.hu> 719 720 * Fix theoretical infinite loops in libfuse. Reported by Szabolcs 721 Szakacsits 722 723 * Fix missing <sys/param.h> include for PATH_MAX. Reported by 724 Szabolcs Szakacsits 725 7262008-05-23 Miklos Szeredi <miklos@szeredi.hu> 727 728 * Fix mounting over symlink. Reported by Szabolcs Szakacsits 729 7302008-05-09 Miklos Szeredi <miklos@szeredi.hu> 731 732 * Don't allow bigger than 4kB writes by default on 2.6.26 and 733 later kernels, so that filesystems not expecting this are not 734 broken on a kernel upgrade. Provide a 'big_writes' mount option 735 to enable this feature. In future API revisions this may become 736 the default. 737 7382008-04-09 Miklos Szeredi <miklos@szeredi.hu> 739 740 * Update warning message for missing newline at end of fuse.conf 741 742 * Update debug message for successful operation to not include the 743 string "error:" 744 7452008-04-08 Miklos Szeredi <miklos@szeredi.hu> 746 747 * Update error message for missing mountpoint parameter. Reported 748 by Allen Pulsifer 749 7502008-04-04 Miklos Szeredi <miklos@szeredi.hu> 751 752 * Print library version information to debug output 753 754 * Highlevel lib: don't limit paths to 4095 characters 755 7562008-03-25 Miklos Szeredi <miklos@szeredi.hu> 757 758 * Fix memory leaks on mount. Patch by Szabolcs Szakacsits 759 7602008-03-19 Miklos Szeredi <miklos@szeredi.hu> 761 762 * Fix missing pthread_mutex_destroy in error path of 763 fuse_lib_opendir(). Patch by Szabolcs Szakacsits 764 7652008-03-07 Miklos Szeredi <miklos@szeredi.hu> 766 767 * Add queuing on contention to per-node lock algorithm, to avoid 768 starvation. 769 770 * Only enable cancelation when reading a request, otherwise 771 cancellation could happen with a mutex held, which could hang the 772 process on umount 773 7742008-02-08 Miklos Szeredi <miklos@szeredi.hu> 775 776 * Block SIGCHLD when executing mount and umount 777 778 * fusexmp_fh: avoid unnecessary seeking in readdir 779 780 * Update kernel interface to 7.9: 781 782 * Support receiving file handle from kernel in GETATTR request 783 784 * Allow operations with a NULL path argument, if the filesystem 785 supports it 786 787 * Add support atomic open(O_TRUNC) 788 789 * Support the st_blksize field in struct stat 790 791 * If the "FUSE_THREAD_STACK" environment is set, initialize the 792 stack size of threads by this value. Patch by Florin Malita 793 794 * Add per-node locking, instead of a global tree lock to protect 795 the path from changing during operations. Original patch by 796 Rodrigo Castro 797 7982008-02-03 Csaba Henk <csaba.henk@creo.hu> 799 800 * lib/mount_bsd.c: 801 - string formatting fixes 802 - exit if mounting has failed 803 (in FreeBSD a mount failure is not critical per se, as the daemon 804 still could be mounted externally, but waiting for such an event 805 is more confusing than fruitful) 806 - ditch the kvm(8) stuff and simply use forced unmount which just 807 won't block 808 - prettify option specifications 809 - add "-onosync_unmount" kernel option 810 8112008-01-07 Csaba Henk <csaba.henk@creo.hu> 812 813 * lib/mount_bsd.c: 814 - refine device closing in a race-free way 815 - add support for "-osubtype" on FreeBSD 816 817 * makeconf.sh: make it work under FreeBSD 818 8192008-01-03 Csaba Henk <csaba.henk@creo.hu> 820 821 * lib/mount_bsd.c: close device before unmount 822 (cf. lib/mount.c rev. 1.43) and fix some warnings 823 8242007-12-23 Miklos Szeredi <miklos@szeredi.hu> 825 826 * Fix './configure --disable-static'. Patch from Ismail Dönmez 827 8282007-12-17 Miklos Szeredi <miklos@szeredi.hu> 829 830 * Released 2.7.2 831 8322007-12-12 Miklos Szeredi <miklos@szeredi.hu> 833 834 * Fix kernel module compile for 2.6.24 835 836 * Invalidate attributes of parent directory after create(), since 837 the modification time changes. Invalidate attributes on rename, 838 since some filesystems may update st_ctime. Reported by Szabolcs 839 Szakacsits 840 841 * Fix NFS exporting to handle 64bit node IDs 842 843 * Disable old symbol versions if __UCLIBC__ is defined. If a 844 symbol in a library has multiple versions, the runtime linker in 845 uClibc seems to randomly choose between them. 846 847 * Remove erroneous 'fuse_opt_insert_arg@FUSE_2_5' from 848 fuse_version_script. fuse_opt_free_args() was added in fuse-2.6. 849 850 * Close fuse device file descriptor before calling umount(), 851 preventing a deadlock when umount is synchronous. Reported by 852 Szabolcs Szakacsits 853 8542007-11-12 Miklos Szeredi <miklos@szeredi.hu> 855 856 * 'fusermount -u' did not umount the filesystem if /etc/mtab was a 857 symlink. This bug was introduced in 2.7.1 by "Don't call 858 /bin/[u]mount if /etc/mtab is a symlink". Found by robertsong. 859 8602007-10-16 Miklos Szeredi <miklos@szeredi.hu> 861 862 * Released 2.7.1 863 8642007-10-16 Miklos Szeredi <miklos@szeredi.hu> 865 866 * Clarify licence version to be "LGPLv2" for the library 867 868 * kernel fixes: 869 870 * After mount set nlink attribute for the root inode to 1 871 872 * Fix wake up of task waiting for a reserved request 873 874 * Fix allowing setattr, listxattr and statfs for other users 875 8762007-09-18 Miklos Szeredi <miklos@szeredi.hu> 877 878 * Add missing context initialization in fuse_fs_chmod(). Bug 879 found by "iohead" 880 881 * Fix kernel module compilation for 2.6.23. Based on patch by 882 Marian Marinov 883 8842007-09-04 Philippe Elie <phil.el@wanadoo.fr> 885 886 * lib/fuse_lowlevel.c: fix a fuse_req leak in do_forget() 887 8882007-07-31 Miklos Szeredi <miklos@szeredi.hu> 889 890 * Work around hotplug issue, that it calls filesystem with file 891 descriptors 0, 1 and 2 not open. Tracked down by Leif Johnson 892 8932007-07-25 Miklos Szeredi <miklos@szeredi.hu> 894 895 * Don't call /bin/[u]mount if /etc/mtab is a symlink. Reported by 896 Tomas M 897 898 * Also don't touch /etc/mtab if it is within the mounted 899 filesystem. Suggested by Jeffrey Law 900 9012007-07-12 Miklos Szeredi <miklos@szeredi.hu> 902 903 * Reset args->argc in fuse_opt_free_args(). Patch by Lucas 904 C. Villa Real 905 9062007-07-02 Miklos Szeredi <miklos@szeredi.hu> 907 908 * Released 2.7.0 909 9102007-07-02 Miklos Szeredi <miklos@szeredi.hu> 911 912 * Accept a NULL "op" for fuse_main(), etc. This is useful if 913 filesystem is only invoking fuse to print a help message, or 914 version. Fixes RedHat bugzilla #217343 915 9162007-06-22 Miklos Szeredi <miklos@szeredi.hu> 917 918 * lib: fix locking when loading a filesystem module 919 9202007-06-21 Miklos Szeredi <miklos@szeredi.hu> 921 922 * Add fs subtype support to mount.fuse 923 9242007-06-20 Miklos Szeredi <miklos@szeredi.hu> 925 926 * Add fs subtype support to libfuse and fusermount 927 9282007-06-19 Miklos Szeredi <miklos@szeredi.hu> 929 930 * kernel: sync with mainline (2.6.22) 931 9322007-06-18 Miklos Szeredi <miklos@szeredi.hu> 933 934 * Send debug output to stderr instead of stdout. Patch by Jan 935 Engelhardt 936 9372007-06-03 Miklos Szeredi <miklos@szeredi.hu> 938 939 * libulockmgr: Work around a kernel bug in recv(), causing it to 940 sometimes return zero even if data was available on the socket. 941 9422007-05-29 Miklos Szeredi <miklos@szeredi.hu> 943 944 * lib: optimization: store parent pointer in node instead of 945 parent id 946 9472007-05-25 Miklos Szeredi <miklos@szeredi.hu> 948 949 * lib: don't create new thread for each FORGET request. FORGET 950 messages sometimes caused so many threads to be created, that 951 process virtual memory space ran out. Reported by Chris AtLee 952 9532007-05-24 Miklos Szeredi <miklos@szeredi.hu> 954 955 * lib: fix memory leak on thread creation failure in multithreaded 956 event loop. Found by Chris AtLee 957 9582007-05-23 Miklos Szeredi <miklos@szeredi.hu> 959 960 * lowlevel lib: add fuse_reply_iov function, which is similar to 961 fuse_reply_buf, but accepts a vector of buffers. Patch by Roger 962 Willcocks 963 9642007-05-21 Miklos Szeredi <miklos@szeredi.hu> 965 966 * Fix Oops or error if a regular file is created with mknod(2) on 967 a fuse filesystem. Kernels 2.6.18 onward are affected. Thanks to 968 J. Cameijo Cerdeira for the report 969 9702007-05-11 Csaba Henk <csaba.henk@creo.hu> 971 972 * libfuse: fix return value of fuse_loop()/fuse_loop_mt(). 973 Error reported by Csaba Henk, fix by Miklos Szeredi 974 975 * libfuse: fix unlock in flush 976 977 * libfuse: do unlocking on RELEASE+FLUSH 978 9792007-05-03 Miklos Szeredi <miklos@szeredi.hu> 980 981 * Released 2.7.0-rc1 982 9832007-05-02 Miklos Szeredi <miklos@szeredi.hu> 984 985 * kernel: sync with mainline: 986 987 * Use invalidate_mapping_pages() if available 988 989 * Fix BUG when invalid file type is supplied in mount. Patch by 990 Timo Savola 991 9922007-04-27 Miklos Szeredi <miklos@szeredi.hu> 993 994 * libfuse: call umount(8) directly instead of fusermount if 995 possible 996 997 * Clean up init script, make it LSB compliant 998 9992007-04-26 Miklos Szeredi <miklos@szeredi.hu> 1000 1001 * In multithreaded loop, use a semaphore instead of SIGHUP to wake 1002 up the main thread on umount. This is more elegant, and works 1003 even if signals are blocked. 1004 10052007-04-25 Miklos Szeredi <miklos@szeredi.hu> 1006 1007 * Improve mounting support in libfuse: 1008 - check non-empty mountpoint 1009 - only fall back to fusermount when necessary 1010 10112007-04-23 Miklos Szeredi <miklos@szeredi.hu> 1012 1013 * Don't chdir to "/" in foreground mode, it causes more trouble 1014 than it's worth 1015 10162007-04-18 Miklos Szeredi <miklos@szeredi.hu> 1017 1018 * Replace utils/mount.fuse "sh" script with a "C" program 1019 10202007-04-15 Miklos Szeredi <miklos@szeredi.hu> 1021 1022 * Add -lulockmgr to compilation comment in fusexmp_fh.c 1023 10242007-04-05 Miklos Szeredi <miklos@szeredi.hu> 1025 1026 * Check for iconv. Patch by Csaba Henk 1027 1028 * Add direct umounting 1029 1030 * Use "fusectl" as the device for the fusectl filesystem. Debian 1031 Bug#417945. Reported by Laurent Bonnaud 1032 10332007-04-01 Csaba Henk <csaba.henk@creo.hu> 1034 1035 * Fix some FreeBSD related macros. 1036 10372007-03-30 Miklos Szeredi <miklos@szeredi.hu> 1038 1039 * Add support for direct mounting by libfuse. Fall back on 1040 calling fusermount if it doesn't work 1041 10422007-03-14 Miklos Szeredi <miklos@szeredi.hu> 1043 1044 * Released 2.7.0-pre1 1045 10462007-03-05 Miklos Szeredi <miklos@szeredi.hu> 1047 1048 * Correctly handle O_APPEND in direct IO mode. Reported by Greg 1049 Bruno 1050 1051 * mount.fuse should use /bin/bash. Debian Bug#413403. Reported 1052 by Thomas Weinbrenner 1053 10542007-02-26 Miklos Szeredi <miklos@szeredi.hu> 1055 1056 * Fix detection of installed fuse in init script. Reported and 1057 fix suggested by Davide Canova 1058 10592007-02-05 Miklos Szeredi <miklos@szeredi.hu> 1060 1061 * Fix 2.6.9 RHEL kernels, which have compatibility mutex.h, but 1062 don't define mutex_destroy(), bummer. Patch from Phil Schwan 1063 10642007-02-04 Miklos Szeredi <miklos@szeredi.hu> 1065 1066 * Compile fuseblk for kernels which don't have an option to turn 1067 off the block layer (CONFIG_BLOCK). Reported by Szakacsits 1068 Szabolcs 1069 10702007-02-03 Miklos Szeredi <miklos@szeredi.hu> 1071 1072 * Add filesystem stacking support to high level API. Filesystem 1073 modules can be built into libfuse or loaded from shared object 1074 (.so) files 1075 1076 * Add 'subdir' and 'iconv' built in modules 1077 1078 * lib/fuse.c: Fix locking for the reply code in create and open 1079 10802007-02-02 Miklos Szeredi <miklos@szeredi.hu> 1081 1082 * kernel: make it compile on "strange" kernels which have emulated 1083 mutexes via <linux/mutex.h> but no i_mutex. Reported by Tomasz 1084 Mateja 1085 10862007-01-28 Miklos Szeredi <miklos@szeredi.hu> 1087 1088 * kernel: fix BUG in control filesystem if it is umounted and 1089 mounted again, while some fuse filesystems are present. 1090 Bugreport from Florent Mertens 1091 1092 * kernel: sync with mainline, support 2.6.20 1093 10942007-01-22 Miklos Szeredi <miklos@szeredi.hu> 1095 1096 * lib/Makefile.am: actually link libfuse against libfuse_libs 1097 10982007-01-19 Miklos Szeredi <miklos@szeredi.hu> 1099 1100 * Build fix for 2.6.16 vanila and 2.6.15 FC5 kernels. Patch from 1101 Ian Abbott 1102 11032007-01-18 Miklos Szeredi <miklos@szeredi.hu> 1104 1105 * Fix abort in fuse_new() compatibility API for opts == NULL case. 1106 Novell bugzilla #233870. Patch from Takashi Iwai. 1107 11082007-01-13 Miklos Szeredi <miklos@szeredi.hu> 1109 1110 * Fix option parsing in mount.fuse. Patch from Jens M. Noedler 1111 11122007-01-02 Miklos Szeredi <miklos@szeredi.hu> 1113 1114 * Fix unaligned access in file desctriptor passing in libfuse, 1115 fusermount and ulockmgr. Debian bug ID: 404904. Reported and 1116 tested by Sebastian Fontius 1117 11182006-12-16 Miklos Szeredi <miklos@szeredi.hu> 1119 1120 * kernel: don't keep unreferenced inodes in the icache. 1121 11222006-12-15 Miklos Szeredi <miklos@szeredi.hu> 1123 1124 * fusermount: Fix detection of fuseblk. Reported by Szakacsits 1125 Szabolcs 1126 1127 * lib: Fix use after free in fuse_flush(). Reported by Ron 1128 Lindman 1129 11302006-12-10 Miklos Szeredi <miklos@szeredi.hu> 1131 1132 * mount.fuse: add "setuid=USER" option which does a "su - USER" 1133 for the filesystem 1134 1135 * fusermount: use "/bin/mount -f" to add entry to /etc/mtab, and 1136 "/bin/umount" to remove entry from /etc/mtab. This gets rid of 1137 the ugly code dealing with mtab, as well as a possible race 1138 between fusermount and mount trying to modify /etc/mtab at the 1139 same time 1140 1141 * Fix "buffer size too small: 4" warning for users of the 1142 fuse_loop_mt_proc() function. 1143 11442006-12-04 Miklos Szeredi <miklos@szeredi.hu> 1145 1146 * Fix warnings with gcc-4.1 on 64bit archs. Report from 1147 Harshavardhana 1148 1149 * Add extra warning options, and fix resulting warnings 1150 1151 * Really fix fuse_teardown problem 1152 11532006-12-02 Miklos Szeredi <miklos@szeredi.hu> 1154 1155 * Add -lrt to fuse.pc (if needed) to fix static linking against 1156 libfuse. Reported by Szakacsits Szabolcs 1157 11582006-12-01 Miklos Szeredi <miklos@szeredi.hu> 1159 1160 * Released 2.6.1 1161 11622006-11-30 Miklos Szeredi <miklos@szeredi.hu> 1163 1164 * Fix API version 21 and 22 compatibility for fuse_teardown. 1165 Reported by Bgs 1166 11672006-11-29 Miklos Szeredi <miklos@szeredi.hu> 1168 1169 * fusermount: Print a more helpful message in case the kernel 1170 doesn't support the 'fuseblk' filesystem type. This has been 1171 biting ntfs-3g users. Reported by Yura Pakhuchiy 1172 1173 * kernel: fix build problem for "make -C ...". Reported by 1174 Stephen Bryant 1175 11762006-11-19 Miklos Szeredi <miklos@szeredi.hu> 1177 1178 * Fix bug in certain error paths of lookup routines. The request 1179 object was reused for sending FORGET, which is illegal. This bug 1180 could cause an Oops in linux-2.6.18 or in fuse-2.6.0, and might 1181 silently corrupt memory in earlier versions. Report and test 1182 program by Russ Cox 1183 11842006-11-11 Miklos Szeredi <miklos@szeredi.hu> 1185 1186 * Print an error if an incompatible kernel interface version is 1187 detected in INIT. This will only show if filesystem is started 1188 with -d or -f 1189 1190 * Fix order of fuse_destroy()/fuse_unmount() in error cleanup of 1191 fuse_setup_common(). Reported by Szakacsits Szabolcs 1192 11932006-11-06 Miklos Szeredi <miklos@szeredi.hu> 1194 1195 * Fix recursive locking in fuse_create(). Thanks to Takuya 1196 Ishibashi for the bug report 1197 11982006-10-28 Miklos Szeredi <miklos@szeredi.hu> 1199 1200 * Fix automake problem. Patch from Nix 1201 12022006-10-26 Miklos Szeredi <miklos@szeredi.hu> 1203 1204 * Fix mount.fuse to use /bin/sh instead of /bin/bash, which is not 1205 always available on embedded systems. Patch from Paul Smith 1206 1207 * Fix util/Makefile.am, so that failure to run update-rc.d or 1208 device creation doesn't cause make to fail. Reported by Paul 1209 Smith 1210 12112006-10-21 Miklos Szeredi <miklos@szeredi.hu> 1212 1213 * Released 2.6.0 1214 12152006-10-18 Miklos Szeredi <miklos@szeredi.hu> 1216 1217 * fusermount: don't try to create a lock file if /etc/mtab is a 1218 symlink. Report and patch from Alexei Sheplyakov (debian bug 1219 #393693) 1220 12212006-10-17 Miklos Szeredi <miklos@szeredi.hu> 1222 1223 * Minor changes, sync with mainline tree 1224 12252006-10-16 Miklos Szeredi <miklos@szeredi.hu> 1226 1227 * Released 2.6.0-rc3 1228 12292006-10-15 Miklos Szeredi <miklos@szeredi.hu> 1230 1231 * kernel: cleanups 1232 12332006-10-13 Miklos Szeredi <miklos@szeredi.hu> 1234 1235 * kernel: Fix compilation on patched 2.6.18 (fc6) and 2.6.19. 1236 Report from David Shaw 1237 1238 * lib: Fix lost error on renaming a file. Report from David Shaw 1239 1240 * lib: Fix lost error on hiding open files (renaming to 1241 .fuse_hiddenXXXX) 1242 1243 * kernel: Fix a rare hang on SMP/32bit on heavy filesystem 1244 activity. The cause of the bug was that some calls to 1245 i_size_write() were not protected by a lock, and hence 1246 i_size_seqcount could become corrupted. This caused subsequent 1247 calls to i_size_read() to spin forever. This is a long standing 1248 bug was probably introduced in version 2.2, and thought to be 1249 related to NFS exporting (it's not). It was reported by various 1250 people, but Dana Henriksen has finally helped me to track it down, 1251 so big thanks to him 1252 1253 * kernel: Protect against truncation of a swapfile 1254 12552006-10-10 Miklos Szeredi <miklos@szeredi.hu> 1256 1257 * kernel: Check for signature of super_operations->umount_begin(). 1258 Ubuntu kernel 2.6.17 seems to use the new signature found in 1259 2.6.18. Thanks to Florent Mertens for the report 1260 12612006-10-08 Miklos Szeredi <miklos@szeredi.hu> 1262 1263 * Make sure inode numers wrap around at 2^32. This is needed on 1264 dual 64bit/32bit architectures, because 32bit applications using 1265 the non-largefile interface would otherwise break (EOVERFLOW error 1266 would be returned by the stat() system call family) 1267 1268 * ulockmgr: handle the case, when a locking operation fails 1269 because no more file desctriptors are available in 1270 ulockmgr_server. Also work around a Linux kernel bug (known to 1271 exist for all Linux kernel versions <= 2.6.18) which may cause 1272 sent file descriptors to be lost in the above case 1273 1274 * ulockmgr: optimize file descriptor use 1275 1276 * restore needed cpp flags to util/Makefile.am 1277 1278 * Install udev rules as 99-fuse.rules instead of 60-fuse.rules 1279 1280 * Minor clean up of udev rules 1281 1282 * Add a synchronous DESTROY message to kernel interface. This is 1283 invoked from umount, when the final instance of the filesystem is 1284 released. It is only sent for filesystems mounted with the 1285 'blkdev' option for security reasons. 1286 1287 * If the DESTROY message is received, call the filesystem's 1288 ->destroy() method. In this case it's not called from session 1289 destruction as it would be otherwise. 1290 12912006-10-01 Miklos Szeredi <miklos@szeredi.hu> 1292 1293 * Released 2.6.0-rc2 1294 12952006-10-01 Miklos Szeredi <miklos@szeredi.hu> 1296 1297 * Add support for FLUSH+RELEASE operation for FreeBSD. Original 1298 patch by Csaba Henk 1299 1300 * Add init script to insert fuse module and mount the control 1301 filesystem. The script is installed as /etc/init.d/fuse and on 1302 debian based systems (where update-rc.d is available) symlinks 1303 from /etc/rc*.d/ are also installed. 1304 1305 * Include '#define FUSE_USE_VERSION=XX' into examples so they 1306 become more self contained. 1307 13082006-09-30 Miklos Szeredi <miklos@szeredi.hu> 1309 1310 * API changes: 1311 1312 * Move lock_owner from a separate argument into fuse_file_info 1313 1314 * Add a flag to fuse_file_info indicating (1) a highlevel lock 1315 operation (unlock all) was initiated by a flush, (2) a lowlevel 1316 release operation should perform a flush as well. 1317 1318 * fusermount: revert modprobe change (2006-08-18) since it 1319 doesn't work reliably with udev 1320 1321 * Add support for block device backed filesystems. This mode is 1322 selected with the 'blkdev' option, which is privileged. 1323 1324 * Add support for the bmap (FIBMAP ioctl) operation on block 1325 device backed filesystems. This allows swapon and lilo to work on 1326 such filesystems. 1327 1328 * kernel changes: 1329 1330 * Drop support for kernels earlier than 2.6.9. Kernel module from 1331 previous (2.5.x) release can be used with library from this 1332 release 1333 1334 * In fuse_dentry_revalidate() use dget_parent() instead of 1335 dereferencing d_parent, since there's no protection against parent 1336 changing and going away 1337 1338 * Protect nlookup from concurrent updates 1339 1340 * In lookup if a directory alias exists but is unused, 1341 then get rid of it, otherwise return -EBUSY. 1342 1343 * In mkdir if a directory alias exists, return success, but leave 1344 dentry negative. In reality this could happen if a remote rename 1345 immediately followed the mkdir. 1346 1347 * Don't BUG in fuse_iget() if multiple retries are needed to get a 1348 good inode. This could happen if several lookups are racing for 1349 the same inode. 1350 13512006-09-29 Miklos Szeredi <miklos@szeredi.hu> 1352 1353 * Fix compilation on 2.6.9. Report from Troy Ayers 1354 13552006-09-27 Miklos Szeredi <miklos@szeredi.hu> 1356 1357 * Fix Oops in fuse_readpages(). Reported by David Shaw 1358 13592006-09-24 Csaba Henk <csaba.henk@creo.hu> 1360 1361 * Add support for nanosec times on FreeBSD 1362 1363 * Fix FreeBSD compatibility issues 1364 13652006-09-23 Miklos Szeredi <miklos@szeredi.hu> 1366 1367 * Fix one more compatibility bug. Thanks to Ricardo Correia 1368 1369 * Fix utimens compilation with uClibc. Patch from Jamie Guinan 1370 13712006-09-22 Miklos Szeredi <miklos@szeredi.hu> 1372 1373 * Fixed several compatibility bugs in low level interface. 1374 Reported by Ricardo Correia 1375 1376 * Add workaround for ARM caching bug 1377 13782006-09-16 Miklos Szeredi <miklos@szeredi.hu> 1379 1380 * Rename new utimes() method to more logical utimens() 1381 13822006-09-14 Miklos Szeredi <miklos@szeredi.hu> 1383 1384 * Fuse tried to unlink already unlinked hidden files. Bug 1385 reported by Milan Svoboda 1386 13872006-09-10 Miklos Szeredi <miklos@szeredi.hu> 1388 1389 * Released 2.6.0-rc1 1390 13912006-09-10 Miklos Szeredi <miklos@szeredi.hu> 1392 1393 * kernel: Fix unlock on close for kernels < 2.6.18 1394 1395 * Add ulockmgr library & server. This can be used for handling 1396 file locking requests either directly from libfuse or over a 1397 network, etc. This first version is not optimized and the number 1398 of file descriptors it uses may get out of hand 1399 14002006-09-07 Miklos Szeredi <miklos@szeredi.hu> 1401 1402 * lib: Add interrupt support to high level library, which may be 1403 enabled with the 'intr' mount option. 1404 1405 * When an operation is interrupted the thread handling that 1406 operation will receive SIGUSR1 (or other signal specified with the 1407 'intr_signal=N' option). The library installs a no-op signal 1408 handler for this signal, unless there's already a handler 1409 installed. 1410 1411 * The filesystem may query interrupt status (regardless of 'intr') 1412 with the fuse_interrupted() function. 1413 1414 * mount.fuse: initialize $HOME if not set. Report from Sven Goldt 1415 14162006-09-03 Miklos Szeredi <miklos@szeredi.hu> 1417 1418 * lib: Multithreaded loop now allows unlimited number of threads. 1419 This is needed for locking operations which may block 1420 indefinitely. Also the kernel now doesn't limit the number of 1421 outstanding requests so the library shouldn't do so either. 1422 14232006-09-01 Miklos Szeredi <miklos@szeredi.hu> 1424 1425 * Fix recursive lock bug in interrupt handling 1426 1427 * Add utimes() method to highlevel interface, which supports 1428 setting times with nanosecond resolution 1429 14302006-08-18 Miklos Szeredi <miklos@szeredi.hu> 1431 1432 * kernel: fix page leak if fuse_readpages() failed in it's 1433 initialization. Bug found and original patch from Alexander 1434 Zarochentsev 1435 1436 * For linux kernels >=2.6.18 (2.6.19 if using the fuse module from 1437 the kernel tree) the statfs method will receive the path within 1438 the filesystem on which the stat(v)fs syscall was called 1439 1440 * fusermount: try to modprobe fuse module if invoked by root and 1441 unable to open device. This is needed with udev, since the device 1442 node will be created only when the module is inserted, hence 1443 module autoloading won't work. Reported by Szakacsits Szabolcs 1444 14452006-07-30 Miklos Szeredi <miklos@szeredi.hu> 1446 1447 * fusermount: if selinux is active, restore the original file's 1448 security context in unmount_rename(). Redhat bugzilla id 188561. 1449 Patch from Yves Perrenoud 1450 1451 * Add POSIX file locking operation to high level library 1452 1453 * Initialize context for unlink of hidden files on umount. Bug 1454 reported by Tim Stoakes 1455 14562006-07-14 Miklos Szeredi <miklos@szeredi.hu> 1457 1458 * Multiple release() calls can race with each other, resulting in 1459 the hidden file being deleted before the last release finishes. 1460 Bug found and patch tested by Mark Huijgen 1461 14622006-07-05 Miklos Szeredi <miklos@szeredi.hu> 1463 1464 * fusermount: if /dev/fuse doesn't exist, suggest modprobing fuse; 1465 this makes sense on systems using udev. Reported by Szakacsits 1466 Szabolcs 1467 14682006-06-29 Miklos Szeredi <miklos@szeredi.hu> 1469 1470 * Released 2.6.0-pre3 1471 14722006-06-29 Miklos Szeredi <miklos@szeredi.hu> 1473 1474 * Support in kernel module for file locking and interruption. The 1475 same functionality is available in official kernels >= 2.6.18 1476 14772006-06-28 Miklos Szeredi <miklos@szeredi.hu> 1478 1479 * Add POSIX file locking support 1480 1481 * Add request interruption 1482 14832006-06-06 Miklos Szeredi <miklos@szeredi.hu> 1484 1485 * Add missing pthread_rwlock_destroy(). Patch from Remy Blank 1486 14872006-06-05 Remy Blank <remy.blank@pobox.com> 1488 1489 * lib: canonicalize mount point in fuse_helper_opt_proc() so that 1490 unmounting succeeds even if mount point was relative. 1491 14922006-06-04 Csaba Henk <csaba.henk@creo.hu> 1493 1494 * lib: fix emergency umount in helper.c when malloc fails. 1495 (The way it was done would end up in a segfault.) 1496 14972006-06-01 Csaba Henk <csaba.henk@creo.hu> 1498 1499 * lib: adjust threading related compiler flags. 1500 Switch to "-pthread" from "-lpthread" as that's the preferred 1501 one on several platforms. Consulted with Terrence Cole and 1502 Miklos Szeredi 1503 15042006-05-08 Miklos Szeredi <miklos@szeredi.hu> 1505 1506 * lib: search fusermount in installation directory (bindir) as 1507 well as in PATH. 1508 15092006-05-03 Miklos Szeredi <miklos@szeredi.hu> 1510 1511 * lib: fix compilation if CLOCK_MONOTONIC is not defined. 1512 Reported by Christian Magnusson 1513 15142006-04-23 Csaba Henk <csaba.henk@creo.hu> 1515 1516 * lib: make FreeBSD mount routine recognize if kernel features 1517 backgrounded init and if it does, run the mount util in foreground 1518 (similarly to Linux) 1519 15202006-04-21 Miklos Szeredi <miklos@szeredi.hu> 1521 1522 * kernel: fix fput deadlock fix, the lockless solution could lead 1523 to "VFS: busy inodes after umount..." 1524 1525 * kernel: fix race between checking and setting file->private_data 1526 for the device. Found by Al Viro 1527 15282006-04-11 Miklos Szeredi <miklos@szeredi.hu> 1529 1530 * kernel: remove request pool, instead allocate requests on 1531 demand. Account the number of background requests, and if they go 1532 over a limit, block the allocation of new requests. 1533 1534 * kernel: fix deadlock if backgrounded request holds the last 1535 reference to the super block 1536 1537 * kernel: don't use fuse_reset_request() during direct I/O 1538 15392006-04-06 Csaba Henk <csaba.henk@creo.hu> 1540 1541 * lib: Let FreeBSD mount option parsing routine recognize "no" 1542 prefixes for FUSE specific options as well 1543 15442006-04-01 Miklos Szeredi <miklos@szeredi.hu> 1545 1546 * lib: Add missing rwlock initialization. Patch by Ryan Bradetich 1547 15482006-03-17 Miklos Szeredi <miklos@szeredi.hu> 1549 1550 * API changes: 1551 1552 * fuse_main(), fuse_setup() and fuse_new() have an additionl 1553 user_data parameter 1554 1555 * fuse_mount() returns a 'struct fuse_chan' pointer instead of a 1556 file descriptor 1557 1558 * fuse_unmount() receives a 'struct fuse_chan' pointer. It 1559 destroys the given channel 1560 1561 * fuse_teardown() no longer has a file descriptor parameter 1562 1563 * new exported functions: fuse_session_remove_chan(), 1564 fuse_get_session(), fuse_daemonize() 1565 1566 * fuse_chan_recv() may now return a new channel which will be used 1567 to send the reply 1568 15692006-03-16 Miklos Szeredi <miklos@szeredi.hu> 1570 1571 * Released 2.6.0-pre2 1572 15732006-03-16 Miklos Szeredi <miklos@szeredi.hu> 1574 1575 * Don't unmount if already unmounted. This fixes a problem seen 1576 in the following situation: Lazy unmount a busy filesystem; Mount 1577 a new one in top; When the first finally unmounts, the second also 1578 unmounts. Reported by Franco Broi 1579 15802006-03-15 Miklos Szeredi <miklos@szeredi.hu> 1581 1582 * lowlevel lib: use indirect function calls instead of a 1583 switch/case construct. Besides increased efficiency it helps 1584 maintainability & readability too. Patch from Florin Malita 1585 15862006-03-13 Miklos Szeredi <miklos@szeredi.hu> 1587 1588 * kernel: replace global spinlock with a per-connection spinlock 1589 15902006-03-10 Miklos Szeredi <miklos@szeredi.hu> 1591 1592 * Fix source compatibility breakage for fuse_unmount(). Report 1593 from Yura Pakhuchiy 1594 15952006-03-02 Miklos Szeredi <miklos@szeredi.hu> 1596 1597 * Fix O_ASYNC handling in fuse_dev_release(). From Jeff Dike 1598 15992006-03-01 Miklos Szeredi <miklos@szeredi.hu> 1600 1601 * Add O_ASYNC and O_NONBLOCK support to FUSE device. Patch by 1602 Jeff Dike 1603 1604 * Renamed fuse_chan_receive() to fuse_chan_recv() and changed 1605 interface to return -errno in case of error. 1606 16072006-03-01 Csaba Henk <csaba.henk@creo.hu> 1608 1609 * libfuse: pass device file descriptor to fuse_unmount(), rewrite 1610 FreeBSD implementation so that it uses libc (sysctl backed) instead 1611 of an embdedded script (kmem backed). Adjust the control flow of 1612 hello_ll so that device doesn't get closed before unmount attempt. 1613 16142006-02-25 Miklos Szeredi <miklos@szeredi.hu> 1615 1616 * Lowlevel lib: return all-zero statvfs data if filesystem doesn't 1617 implement method. This is needed on FreeBSD, and nicer on Linux 1618 too. Highlevel lib already did this. Reported by Csaba Henk 1619 1620 * Fix negative entry handling. There was a bug, that negative 1621 lookups with timeouts (nodeid == 0) returned -EIO. 1622 16232006-02-23 Miklos Szeredi <miklos@szeredi.hu> 1624 1625 * Fix race between RELEASE and UNLINK, which might leave 1626 .fuse_hidden* files around 1627 16282006-02-21 Miklos Szeredi <miklos@szeredi.hu> 1629 1630 * fusexmp_fh: implement flush() method and call close() on the 1631 open file descriptor. This is needed if used on an NFS 1632 filesystem, which buffers data until file is closed. Franco Broi 1633 spotted the situation when 'cp -p' failed to set the modification 1634 time because of this. 1635 16362006-02-20 Miklos Szeredi <miklos@szeredi.hu> 1637 1638 * Released 2.6.0-pre1 1639 16402006-02-19 Miklos Szeredi <miklos@szeredi.hu> 1641 1642 * libfuse: fix use-after-free bug in interruptred reply_entry(). 1643 Patch from John Muir 1644 1645 * libfuse: fix wrong symbol versioning for fuse_mount. Debian bug 1646 ID: 352631. Found by Stéphane Rosi 1647 16482006-02-17 Miklos Szeredi <miklos@szeredi.hu> 1649 1650 * Lowlevel lib: Unify fuse_dirent_size() and fuse_add_dirent() 1651 into a single function fuse_add_direntry(). This cleans up the 1652 interface and makes it possible to do stacking. 1653 16542006-02-16 Miklos Szeredi <miklos@szeredi.hu> 1655 1656 * Fix rare race betweeen abort and release caused by failed iget() 1657 in fuse_create_open(). 1658 1659 * Add 'ac_attr_timeout' option e.g. for filesystems which do their 1660 own attribute caching. 1661 16622006-02-15 Miklos Szeredi <miklos@szeredi.hu> 1663 1664 * Work around FreeBSD runtime linker "feature" which binds an old 1665 version of a symbol to internal references if the symbol has more 1666 than one version. This resulted in infinite recursion in 1667 fuse_lowlevel_new_compat25(). 1668 16692006-02-10 Csaba Henk <csaba.henk@creo.hu> 1670 1671 * Refine clock_gettime() querying so that linker options 1672 shall be set as it's appropriate for the target platform. 1673 16742006-02-09 Miklos Szeredi <miklos@szeredi.hu> 1675 1676 * Fix udev rule syntax. Reported by Nix 1677 16782006-02-08 Miklos Szeredi <miklos@szeredi.hu> 1679 1680 * In some cases udev rule seems to be ineffective when installed 1681 as 40-fuse.rules but work as 60-fuse.rules. Reported by John Hunt 1682 16832006-02-03 Miklos Szeredi <miklos@szeredi.hu> 1684 1685 * Fix compilation when build directory is different from source 1686 directory. Reported by Frédéric L. W. Meunier 1687 16882006-02-02 Miklos Szeredi <miklos@szeredi.hu> 1689 1690 * Fix even bigger bug introduced in fix for request_end() on 1691 2006-01-14. Reported by Gal Rosen 1692 16932006-01-30 Miklos Szeredi <miklos@szeredi.hu> 1694 1695 * highlevel-lib: add 'auto_cache' option. This caches file data 1696 based on modification time and size 1697 16982006-01-20 Miklos Szeredi <miklos@szeredi.hu> 1699 1700 * Sanitize storage type and help message in mount_bsd.c. Patch 1701 from Csaba Henk 1702 1703 * fuse_opt: add new helper constants FUSE_OPT_KEY_KEEP and 1704 FUSE_OPT_KEY_DISCARD 1705 1706 * Add options 'max_readahead', 'sync_read' and 'async_read' 1707 1708 * Kernel ABI version 7.6: 1709 1710 * Negotiate the 'max_readahead' value and 'async_read' flags with 1711 userspace in the INIT method 1712 1713 * Add connection info to ->init() methods to both lowlevel and 1714 highlevel API 1715 1716 * Fall back to synchronous read() behavior if either library or 1717 userspace filesystem is using the old interface version. This is 1718 needed so non-updated filesystems won't be confused by the 1719 different read() behavior 1720 17212006-01-19 Miklos Szeredi <miklos@szeredi.hu> 1722 1723 * lib: if "fsname=" option was given, pass it to fusermount 1724 1725 * fuse_opt: add new fuse_opt_insert_arg() function, which is 1726 needed by filesystems to implement some argument manipulations 1727 correctly 1728 1729 * fuse_opt: fix memory leak in handling "--" option 1730 17312006-01-18 Miklos Szeredi <miklos@szeredi.hu> 1732 1733 * kernel: fix detection of case when fuse is not configured into 1734 the kernel either as module or built-in 1735 1736 * fuse_opt.h: fix incompatibility with C++ compilers by renaming 1737 'template' structure member to 'templ'. Reported by Takashi Iwai 1738 1739 * fuse.h: fix compatibility bugs. Patch by Yura Pakhuchiy 1740 1741 * kernel: support version 2.6.16 (i_sem -> i_mutex) 1742 17432006-01-16 Miklos Szeredi <miklos@szeredi.hu> 1744 1745 * Added (again) asynchronous readpages support 1746 1747 * Each connection now shows up under /sys/fs/fuse/connections 1748 1749 * Connection attributes exported to sysfs: 'waiting' number of 1750 waiting requests; 'abort' abort the connection 1751 1752 * Connection may be aborted through either the sysfs interface or 1753 with 'umount -f mountpoint' 1754 17552006-01-14 Miklos Szeredi <miklos@szeredi.hu> 1756 1757 * Released 2.5.0 1758 17592006-01-14 Miklos Szeredi <miklos@szeredi.hu> 1760 1761 * kernel: fix a couple of bugs 1762 1763 * Order of request_end() and fuse_copy_finish() was wrong. 1764 Posthumous note: Franco Broi managed to exploit this, though it 1765 seemed quite impossible 1766 1767 * request_end() used request pointer after decrementing refcount 1768 1769 * Clearing ->connected or ->mounted connection flags could race 1770 with setting other bitfields not protected with a lock 1771 17722006-01-10 Miklos Szeredi <miklos@szeredi.hu> 1773 1774 * kernel: add necessary compile flags for 2.4.X/x86_64. 1775 Report from Sean Ziegeler 1776 17772006-01-09 Miklos Szeredi <miklos@szeredi.hu> 1778 1779 * Released 2.5.0-pre2 1780 17812006-01-09 Miklos Szeredi <miklos@szeredi.hu> 1782 1783 * Applied patch from Csaba Henk, to update mount_bsd to new 1784 fuse_mount() semantics 1785 1786 * Ignore auto,noauto,... options in mount.fuse. Reported by Frank 1787 Steiner and Don Taber 1788 1789 * fusermount: add 'dirsync' mount option 1790 17912006-01-07 Miklos Szeredi <miklos@szeredi.hu> 1792 1793 * Improved help reporting and added version reporting to library 1794 17952006-01-06 Miklos Szeredi <miklos@szeredi.hu> 1796 1797 * Change working directory to "/" even if running in the 1798 foreground. Patch from Jonathan Brandmeyer 1799 1800 * Changed lots of functions to use 'struct fuse_args' instead of 1801 separate argc and argv 1802 1803 * Added fuse_parse_cmdline(), fuse_set_signal_handlers() and 1804 fuse_remove_signal_handlers() functions, so that it's now pretty 1805 easy to get all the functionality of fuse_main() with a filesystem 1806 using the lowlevel API. 1807 18082006-01-02 Miklos Szeredi <miklos@szeredi.hu> 1809 1810 * mount.fuse: the 'user' option should be ignored. Report and 1811 solution from Mattd. 1812 1813 * mount.fuse: export PATH in the right place. Report and patch 1814 from Hannes Schweizer 1815 18162005-12-16 Miklos Szeredi <miklos@szeredi.hu> 1817 1818 * Clean up the option parsing interface slightly, by creating an 1819 "argument list" structure, that contains the argument vector and 1820 count 1821 18222005-12-15 Miklos Szeredi <miklos@szeredi.hu> 1823 1824 * fusermount: check if /mnt/mtab is a symlink and don't modify it 1825 in that case 1826 1827 * kernel: simplify request size limiting. INIT only contains 1828 maximum write size, maximum path component size remains fixed at 1829 1024 bytes, and maximum xattr size depends on read buffer. 1830 18312005-12-14 Miklos Szeredi <miklos@szeredi.hu> 1832 1833 * Fix readdir() failure on x86_64, of 32bit programs compiled 1834 without largefile support. Bug report and help from Anthony 1835 Kolasny 1836 1837 * If lookup returns invalid mode, return -EIO instead of creating 1838 a regular file 1839 1840 * Add current output argument vector to option processing 1841 function 1842 18432005-12-12 Miklos Szeredi <miklos@szeredi.hu> 1844 1845 * Fix stale code in ifdef FreeBSD. Patch from Csaba Henk 1846 18472005-12-09 Miklos Szeredi <miklos@szeredi.hu> 1848 1849 * Released 2.5.0-pre1 1850 18512005-12-09 Miklos Szeredi <miklos@szeredi.hu> 1852 1853 * libfuse: added option parsing interface, defined in 1854 <fuse_opt.h>. 1855 18562005-12-07 Miklos Szeredi <miklos@szeredi.hu> 1857 1858 * Return EIO for file operations (read, write, fsync, flush) on 1859 open files whose inode has become "bad". Inodes will be marked 1860 "bad" if their type changes. Bug report by Csaba Henk 1861 18622005-12-06 Miklos Szeredi <miklos@szeredi.hu> 1863 1864 * Use bigger request buffer size. write() did not work on archs 1865 with > 4k page size, Bug report by Mark Haney 1866 1867 * ABI version 7.5: 1868 1869 * Extend INIT reply with data size limits 1870 18712005-12-02 Miklos Szeredi <miklos@szeredi.hu> 1872 1873 * Fix memory leak in fuse_read_cmd()/fuse_process_cmd(). Bug 1874 reported by Vincenzo Ciancia 1875 1876 * Handle exit-by-umount in fuse_read_cmd() 1877 18782005-11-29 Miklos Szeredi <miklos@szeredi.hu> 1879 1880 * Check if '-msoft-float' option is supported by compiler when 1881 configuring for a 2.4.x kernel. Bug report by Mark Haney 1882 1883 * In multithreaded loop send a TERM signal to the main thread if 1884 one of the other threads exit. Needed on FreeBSD for a clean exit 1885 on umount. Should not cause any harm on Linux either 1886 18872005-11-28 Miklos Szeredi <miklos@szeredi.hu> 1888 1889 * Fix bug in 32-bit file handle compatibility 1890 18912005-11-27 Miklos Szeredi <miklos@szeredi.hu> 1892 1893 * Block TERM, INT, HUP and QUIT signals in all but the main 1894 thread. According to POSIX it's not specified which thread will 1895 receive these signals. 1896 1897 * Kernel changes: 1898 1899 * Check for directory aliasing on mkdir, not just on lookup 1900 1901 * Check for special node ID values in create+open operation 1902 1903 * Sync with -mm: readv, writev, aio_read and aio_write methods 1904 added to file operations 1905 1906 * Cleanups: lookup code, page offset calculation 1907 1908 * ABI stepped to 7.4, changes: 1909 1910 * frsize member added to fuse_kstatfs structure 1911 1912 * added support for negative entry caching: on lowlevel API if 1913 fuse_entry_param::ino is set to zero in reply to a lookup request, 1914 the kernel will cache the dentry for the specified amount of time. 1915 1916 * libfuse: added 'negative_timeout' option: specifies how much 1917 negative entries should be cached. Default is zero, to be 1918 compatible with prior versions 1919 19202005-11-22 Miklos Szeredi <miklos@szeredi.hu> 1921 1922 * Add detection of mainline FUSE code in running kernel 1923 19242005-11-21 Miklos Szeredi <miklos@szeredi.hu> 1925 1926 * Don't use async cancelation in multithreaded loop. This makes 1927 it more portable to systems where read() is not async cancel safe. 1928 Report from Andriy Gapon 1929 19302005-11-20 Miklos Szeredi <miklos@szeredi.hu> 1931 1932 * Warn if API version 11 compatibility is requested 1933 19342005-11-17 Miklos Szeredi <miklos@szeredi.hu> 1935 1936 * More FreeBSD merge 1937 1938 * fusermount: don't allow mountpoints with '\n', '\t', or '\\' in 1939 them, because it corrupts /etc/mtab. Found by Thomas Biege 1940 CVE-2005-3531 1941 1942 * libfuse: don't use system() to invoke 'fusermount -u ...' 1943 because it breaks mountpoints with spaces in them into multiple 1944 arguments 1945 19462005-11-16 Miklos Szeredi <miklos@szeredi.hu> 1947 1948 * Merge library part of FreeBSD port. Patch by Csaba Henk 1949 19502005-11-11 Miklos Szeredi <miklos@szeredi.hu> 1951 1952 * Use 64bit type for file handle, so the full range supported by 1953 the kernel interface is available to applications 1954 19552005-11-10 Miklos Szeredi <miklos@szeredi.hu> 1956 1957 * Moved mountpoint argument checking from fuse_parse_cmdline() to 1958 fuse_mount() in preparation to FreeBSD merge. 1959 19602005-11-08 Miklos Szeredi <miklos@szeredi.hu> 1961 1962 * Remove unneeded close() from fuse_teardown(). Spotted by Csaba 1963 Henk. 1964 19652005-11-07 Miklos Szeredi <miklos@szeredi.hu> 1966 1967 * Make the statfs change backwards compatible. 1968 19692005-11-06 Miklos Szeredi <miklos@szeredi.hu> 1970 1971 * Change ->statfs() method to use 'struct statvfs' instead of 1972 'struct statfs'. This makes the API more portable since statvfs() 1973 is defined by POSIX. 1974 19752005-10-28 Miklos Szeredi <miklos@szeredi.hu> 1976 1977 * Add fgetattr() method, which currently will only be called after 1978 a successful call to a create() method. 1979 19802005-10-26 Miklos Szeredi <miklos@szeredi.hu> 1981 1982 * Change kernel ABI version to 7.3 1983 1984 * Add ACCESS operation. This is called from the access() system 1985 call if 'default_permissions' mount option is not given, and is 1986 not called on kernels 2.4.* 1987 1988 * Add atomic CREATE+OPEN operation. This will only work with 1989 2.6.15 (presumably) or later Linux kernels. 1990 1991 * Add ftruncate() method. This will only work with 2.6.15 1992 (presumably) or later Linux kernels. 1993 1994 * Fix kernel module compile if kernel source and build directories 1995 differ. Report and initial patch by John Eastman 1996 19972005-10-18 Miklos Szeredi <miklos@szeredi.hu> 1998 1999 * lib: optimize buffer reallocation in fill_dir. 2000 20012005-10-17 Miklos Szeredi <miklos@szeredi.hu> 2002 2003 * Released 2.4.1 2004 20052005-10-14 Miklos Szeredi <miklos@szeredi.hu> 2006 2007 * libfuse: add debug for write result (by Shaun Jackman) and 2008 warnings for too large read/write result 2009 20102005-10-11 Miklos Szeredi <miklos@szeredi.hu> 2011 2012 * Spelling fixes, thanks to Ioannis Barkas 2013 20142005-10-10 Miklos Szeredi <miklos@szeredi.hu> 2015 2016 * fuse_common.h: use extern "C". Thanks to Valient Gough for the 2017 patch 2018 20192005-10-07 Miklos Szeredi <miklos@szeredi.hu> 2020 2021 * highlevel-lib: init() and destroy() methods didn't have an 2022 initialized fuse_context. Bug reported by Tim Stoakes 2023 20242005-10-04 Miklos Szeredi <miklos@szeredi.hu> 2025 2026 * Released 2.4.0 2027 20282005-10-03 Miklos Szeredi <miklos@szeredi.hu> 2029 2030 * Add documentation to fuse_lowlevel.h 2031 2032 * API cleanups: 2033 2034 * Remove definitions of unused FATTR_CTIME / FUSE_SET_ATTR_CTIME 2035 2036 * Move fuse_mount() and fuse_unmount() to fuse_common.h 2037 2038 * Change the return type of fuse_reply_none() from int to void. 2039 20402005-09-30 Miklos Szeredi <miklos@szeredi.hu> 2041 2042 * kernel: NFS exporting leaked dentries. Bug found and fixed by 2043 Akshat Aranya. 2044 20452005-09-29 Miklos Szeredi <miklos@szeredi.hu> 2046 2047 * fusermount: fix error message, when unable to open /dev/fuse. 2048 Report by Balázs Pozsár 2049 20502005-09-28 Miklos Szeredi <miklos@szeredi.hu> 2051 2052 * UClibc fixes from Christian Magnusson 2053 20542005-09-27 Miklos Szeredi <miklos@szeredi.hu> 2055 2056 * Added NAME="%k" to util/udev.rules. Fix by Mattias Wadman. 2057 20582005-09-26 Miklos Szeredi <miklos@szeredi.hu> 2059 2060 * Released 2.4.0-rc1 2061 20622005-09-26 Miklos Szeredi <miklos@szeredi.hu> 2063 2064 * fusermount: allow user umount in the case when /etc/mtab is a 2065 symlink to /proc/mounts. Reported by Balázs Pozsár. 2066 20672005-09-23 Miklos Szeredi <miklos@szeredi.hu> 2068 2069 * Check for special node ID values in lookup and creation 2070 20712005-09-22 Miklos Szeredi <miklos@szeredi.hu> 2072 2073 * Slight optimization in returning EINVAL error in case of an open 2074 with O_DIRECT flag. 2075 20762005-09-20 Miklos Szeredi <miklos@szeredi.hu> 2077 2078 * Remove '--enable-auto-modprobe' configure flag. Module 2079 auto-loading is now handled by the kernel. 2080 20812005-09-15 Miklos Szeredi <miklos@szeredi.hu> 2082 2083 * Install UDEV rule file, so /dev/fuse is created with mode 0666. 2084 Help from Jens M. Noedler. 2085 20862005-09-14 Miklos Szeredi <miklos@szeredi.hu> 2087 2088 * Add memory cleanup on thread exit 2089 20902005-09-13 Miklos Szeredi <miklos@szeredi.hu> 2091 2092 * Set umask to zero in fusexmp and fusexmp_fh, so that 2093 files/directories are created with the requested mode. 2094 20952005-09-12 Miklos Szeredi <miklos@szeredi.hu> 2096 2097 * Don't ignore read error in multithreaded loop 2098 20992005-09-08 Miklos Szeredi <miklos@szeredi.hu> 2100 2101 * Released 2.4.0-pre2 2102 21032005-09-08 Miklos Szeredi <miklos@szeredi.hu> 2104 2105 * Revert lock and access operations. Postpone these until 2.5. 2106 21072005-09-02 Miklos Szeredi <miklos@szeredi.hu> 2108 2109 * Fix compile warning on 2.6.13 and later 2110 2111 * Fix compilation on old kernels 2112 21132005-08-19 Miklos Szeredi <miklos@szeredi.hu> 2114 2115 * lib: always refresh directory contents after rewinddir() to 2116 conform to SUS. Bug found by John Muir. 2117 21182005-08-15 Miklos Szeredi <miklos@szeredi.hu> 2119 2120 * Released 2.4.0-pre1 2121 21222005-08-14 Miklos Szeredi <miklos@szeredi.hu> 2123 2124 * lib: cleaned up (or messed up, depending on your POV) the low 2125 level library API. Hopefully this is close to the final form. 2126 21272005-08-05 Miklos Szeredi <miklos@szeredi.hu> 2128 2129 * fusermount: don't allow empty mountpoint argument, which defeats 2130 automatic umounting in fuse_main(). Bugreport by Václav Jůza 2131 21322005-08-03 Miklos Szeredi <miklos@szeredi.hu> 2133 2134 * fix warnings in fuse.h and fuse_lowlevel.h if -Wshadow compiler 2135 option is used (Paul Alfille). 2136 21372005-08-02 Miklos Szeredi <miklos@szeredi.hu> 2138 2139 * highlevel-lib: added mount options "attr_timeout" and 2140 "entry_timeout". These options control the length of time file 2141 attributes and entries (names) are cached. Both default to 1.0 2142 second. 2143 2144 * kernel: correctly handle zero timeout for attributes and entries 2145 21462005-08-01 Miklos Szeredi <miklos@szeredi.hu> 2147 2148 * Added missing symbols to versionscript (Joshua J. Berry) 2149 2150 * kernel: implement two flags, open can set: 'direct_io' and 2151 'keep_cache'. These correspond exactly to mount options 2152 'direct_io' and 'kernel_cache', but allow a per-open setting. 2153 2154 * Move 'direct_io' and 'kernel_cache' mount option handling to 2155 userspace. For both mount options, if the option is given, then 2156 the respective open flag is set, otherwise the open flag is left 2157 unmodified (so the filesystem can set it). 2158 2159 * lib (highlevel): make open method optional 2160 21612005-07-28 Miklos Szeredi <miklos@szeredi.hu> 2162 2163 * kernel: invalidate attributes for read/readdir/readlink 2164 operations 2165 2166 * kernel: detect newer UML kernels 2167 21682005-07-26 Miklos Szeredi <miklos@szeredi.hu> 2169 2170 * Make the installation path of fuse.ko and mount.fuse 2171 configurable through INSTALL_MOD_PATH and MOUNT_FUSE_PATH 2172 environment variables. Requirement and help from Csaba Henk. 2173 21742005-07-22 Miklos Szeredi <miklos@szeredi.hu> 2175 2176 * Fix bug, that causes filesystem requests to hang when unique 2177 request counter becomes negative. This happens after 2178 2,147,483,648 operations, so most people won't care. Thanks to 2179 Franco Broi for the report and testing. 2180 21812005-07-21 Miklos Szeredi <miklos@szeredi.hu> 2182 2183 * Don't change mtime/ctime/atime to local time on read/write. 2184 Bug reported by Ben Grimm 2185 2186 * Install fuse_common.h and fuse_lowlevel.h. Report by Christian 2187 Magnusson 2188 2189 * fusermount: use getopt_long() for option parsing. It allows the 2190 use of '--' to stop argument scanning, so fusermount can now 2191 operate on directories whose names begin with a '-'. Patch by 2192 Adam Connell 2193 21942005-07-15 Miklos Szeredi <miklos@szeredi.hu> 2195 2196 * fusermount: add '-v', '--version' and '--help' options 2197 2198 * add inode based API 2199 22002005-07-12 Miklos Szeredi <miklos@szeredi.hu> 2201 2202 * lib: don't block signals in worker threads. Problem noticed by 2203 Usarin Heininga 2204 22052005-07-07 Miklos Szeredi <miklos@szeredi.hu> 2206 2207 * lib: don't allow both 'allow_other' and 'allow_root' options to 2208 be given 2209 22102005-07-06 Miklos Szeredi <miklos@szeredi.hu> 2211 2212 * fusermount: check if mountpoint is empty (only '.' and '..' for 2213 directories, and size = 0 for regular files). If "nonempty" 2214 option is given, omit this check. This is useful, so users don't 2215 accidentally hide data (e.g. from backup programs). Thanks to 2216 Frank van Maarseveen for pointing this out. 2217 2218 * kernel: check if mandatory mount options ('fd', 'rootmode', 2219 'user_id', 'group_id') are all given 2220 2221 * lib: simplify 'readdir_ino' handling 2222 2223 * lib: add mount options 'umask=M', 'uid=N', 'gid=N' 2224 22252005-07-03 Miklos Szeredi <miklos@szeredi.hu> 2226 2227 * kernel: clean up 'direct_io' code 2228 22292005-06-28 Miklos Szeredi <miklos@szeredi.hu> 2230 2231 * Add 'mount.fuse' written by Petr Klima 2232 2233 * '/dev/fuse' is created by 'make install' if does not yet exist 2234 22352005-06-20 Miklos Szeredi <miklos@szeredi.hu> 2236 2237 * Fix UCLIBC compile error. Patch by Christian Magnusson 2238 22392005-06-08 Miklos Szeredi <miklos@szeredi.hu> 2240 2241 * Enable the auto-loading of the module via access to the 2242 corresponding device file. Patch by Takashi Iwai. 2243 2244 * Allow mounting a regular file (over a regular file) for 2245 unprivleged users. 2246 2247 * Do not create temporary device file. Require "/dev/fuse" to 2248 exist, and be readable/writable by the mounting user. 2249 22502005-06-02 Miklos Szeredi <miklos@szeredi.hu> 2251 2252 * Released 2.3.0 2253 22542005-06-02 Miklos Szeredi <miklos@szeredi.hu> 2255 2256 * Fix serious information leak: if the filesystem returns a short 2257 byte count to a read request, and there are non-zero number of 2258 pages which are not filled at all, these pages will not be zeroed. 2259 Hence the user can read out previous memory contents. Found by 2260 Sven Tantau. 2261 22622005-05-27 Miklos Szeredi <miklos@szeredi.hu> 2263 2264 * Add "readdir_ino" mount option, which tries to fill in the d_ino 2265 field in struct dirent. This mount option is ignored if "use_ino" 2266 is used. It helps some programs (e.g. 'pwd' used over NFS from a 2267 non-Linux OS). Patch by David Shaw. 2268 22692005-05-12 Miklos Szeredi <miklos@szeredi.hu> 2270 2271 * Released 2.3-rc1 2272 22732005-05-12 Miklos Szeredi <miklos@szeredi.hu> 2274 2275 * File save in krusader and other editors doesn't work with sshfs, 2276 because open() is interrupted by a periodic signal, and open() 2277 restarts forever, without any progress. This could just be fixed 2278 in open(), but the problem is more generic: if signals are 2279 received more often than the filesystem can get the request to 2280 userspace, it will never finish. This is probably only a 2281 theoretical problem, nevertheless I'm removing the possibility to 2282 interrupt requests with anything other than SIGKILL, even before 2283 being sent to userspace. Bugreport by Eduard Czimbalmos. 2284 22852005-05-09 Miklos Szeredi <miklos@szeredi.hu> 2286 2287 * libfuse: add "tree_lock" rwlock, that is locked for write in 2288 rename, unlink and rmdir, and locked for read in all other 2289 operations. This should fix the rename/release race reported by 2290 Valient Gough and others. The solution is very coarse, a finer 2291 grained locking scheme could be implemented, but it would be much 2292 more complex. Let's see whether this is good enough. 2293 22942005-05-09 Miklos Szeredi <miklos@szeredi.hu> 2295 2296 * Released 2.3-pre7 2297 22982005-05-08 Miklos Szeredi <miklos@szeredi.hu> 2299 2300 * Better fix for out of order FORGET messages. Now the 2301 LOOKUP/FORGET messages are balanced exactly (one FORGET can 2302 balance many lookups), so the order no longer matters. This 2303 changes the kernel ABI slightly, but the library remains backward 2304 compatible. 2305 23062005-05-06 Miklos Szeredi <miklos@szeredi.hu> 2307 2308 * Fix abort for out of order FORGET messages. Again. Spotted by 2309 Franco Broi again. Sorry :) 2310 23112005-04-29 Miklos Szeredi <miklos@szeredi.hu> 2312 2313 * Released 2.3-pre6 2314 23152005-04-29 Miklos Szeredi <miklos@szeredi.hu> 2316 2317 * Make fusermount work with fuse kernel modules not yet supporting 2318 the "group_id" option (added for the purpose of stricter 2319 permission checking). 2320 23212005-04-28 Miklos Szeredi <miklos@szeredi.hu> 2322 2323 * Check for hard-linked directories in lookup. This could cause 2324 problems in the VFS, which assumes that such objects never exist. 2325 2326 * Make checking of permission for other users more strict. Now 2327 the same privilege is required for the mount owner as for ptrace 2328 on the process performing the filesystem operation. 2329 23302005-04-23 Miklos Szeredi <miklos@szeredi.hu> 2331 2332 * Released 2.3-pre5 2333 23342005-04-22 Miklos Szeredi <miklos@szeredi.hu> 2335 2336 * Add -msoft-float to kernel module compile flags for 2.4.X. This 2337 is needed on certain architectures. Report from Chris Kirby 2338 2339 * Fix buggy behavior of open(..., O_CREAT|O_EXCL) if interrupted. 2340 Reported by David Shaw 2341 2342 * Remove "allow_root" option from kernel module, and implement 2343 it's functionality in the library 2344 2345 * Fix Oops caused by premature release of fuse_conn. Clean up 2346 related code, to be more readable 2347 2348 * Sendfile should not use page cache if "direct_io" mount option 2349 is given 2350 23512005-04-08 Miklos Szeredi <miklos@szeredi.hu> 2352 2353 * Fix Oops in case of nfs export. Spotted by David Shaw 2354 2355 * Fix another Oops in case of write over nfs with direct_io turned 2356 on. Again spotted by David Shaw 2357 23582005-04-07 Miklos Szeredi <miklos@szeredi.hu> 2359 2360 * Released 2.3-pre4 2361 23622005-04-07 Miklos Szeredi <miklos@szeredi.hu> 2363 2364 * lib: finalized new readdir() interface, which now supersedes the 2365 getdir() method. 2366 23672005-04-03 Miklos Szeredi <miklos@szeredi.hu> 2368 2369 * Released 2.3-pre3 2370 23712005-04-03 Miklos Szeredi <miklos@szeredi.hu> 2372 2373 * Implement backward compatibility with version 5 kernel ABI 2374 23752005-04-01 Miklos Szeredi <miklos@szeredi.hu> 2376 2377 * Released 2.3-pre2 2378 23792005-04-01 Miklos Szeredi <miklos@szeredi.hu> 2380 2381 * kernel: fix dirent offset handling 2382 2383 * lib: add readdir and releasedir methods 2384 2385 * lib: use fh field of fuse_file_info in opendir, readdir, 2386 releasedir and fsyncdir methods 2387 2388 * lib: check kernel API version and bail out of it's old. This 2389 will be properly fixed in the next release 2390 23912005-03-31 Miklos Szeredi <miklos@szeredi.hu> 2392 2393 * Released 2.3-pre1 2394 23952005-03-31 Miklos Szeredi <miklos@szeredi.hu> 2396 2397 * kernel API: add padding to structures, so 64bit and 32bit 2398 compiler will return the same size 2399 2400 * kernel API: add offset field to fuse_dirent. This will allow 2401 more sophisticated readdir interface for userspace 2402 2403 * kernel API: change major number to 6 2404 2405 * kernel: fix warnings on 64bit archs 2406 2407 * kernel: in case of API version mismatch, return ECONNREFUSED 2408 24092005-03-24 Miklos Szeredi <miklos@szeredi.hu> 2410 2411 * kernel: trivial cleanups 2412 24132005-03-21 Miklos Szeredi <miklos@szeredi.hu> 2414 2415 * Add fsyncdir() operation 2416 24172005-03-19 Miklos Szeredi <miklos@szeredi.hu> 2418 2419 * kernel: add locking to background list (fixes previous fix) 2420 24212005-03-18 Miklos Szeredi <miklos@szeredi.hu> 2422 2423 * kernel: fix bug which could cause leave busy inodes after 2424 unmount, and Oops. 2425 24262005-03-08 Miklos Szeredi <miklos@szeredi.hu> 2427 2428 * examples: add -lpthread to link flags to work around valgrind 2429 quirk 2430 2431 * lib: don't exit threads, so cancelation doesn't cause segfault 2432 24332005-03-04 Miklos Szeredi <miklos@szeredi.hu> 2434 2435 * kernel: fix nasty bug which could cause an Oops under certain 2436 situations. Found by Magnus Johansson 2437 24382005-02-28 Miklos Szeredi <miklos@szeredi.hu> 2439 2440 * libfuse: added opendir() method. This can be used in case 2441 permission checking in getdir() is too late. Thanks to Usarin 2442 Heininga for pointing out this deficiency 2443 2444 * libfuse: added init() and destroy() methods to fuse_operations 2445 2446 * kernel: llseek() method for files and directories made explicit 2447 2448 * kernel: fixed inode leak in NFS export in case of nodeid 2449 wrapping 2450 24512005-02-15 Miklos Szeredi <miklos@szeredi.hu> 2452 2453 * libfuse: clean up some unitialized memory found with valgrind 2454 2455 * Add -lpthread to Libs in fuse.pc. Valgrind seems to need an 2456 explicitly linked libpthread for applications 2457 24582005-02-10 Miklos Szeredi <miklos@szeredi.hu> 2459 2460 * fusermount: set umask, otherwise /etc/mtab will have 2461 unpredictable permission. Spotted by Jindrich Kolorenc 2462 2463 * fusermount: set owner and group of /etc/mtab to original values 2464 on unmount 2465 2466 * libfuse: add 'use_ino' option to help. Patch by Valient Gough 2467 24682005-02-07 Miklos Szeredi <miklos@szeredi.hu> 2469 2470 * Cleaned up directory reading (temporary file is not used) 2471 24722005-02-02 Miklos Szeredi <miklos@szeredi.hu> 2473 2474 * Released 2.2 2475 24762005-02-02 Miklos Szeredi <miklos@szeredi.hu> 2477 2478 * Fix possible race when operation is interrupted 2479 24802005-01-28 Miklos Szeredi <miklos@szeredi.hu> 2481 2482 * Fix compilation on 2.6.7 2483 24842005-01-26 Miklos Szeredi <miklos@szeredi.hu> 2485 2486 * Released 2.2-pre6 2487 24882005-01-26 Miklos Szeredi <miklos@szeredi.hu> 2489 2490 * Fix bug in link() operation which caused the wrong path to be 2491 passed as the first argument. Found by Anton Altaparmakov 2492 24932005-01-21 Miklos Szeredi <miklos@szeredi.hu> 2494 2495 * LIB: fix double reply in readdir operation 2496 2497 * fusermount: fix uid checking bug. Patch by Adam Connell 2498 2499 * KERNEL: fix compile on various RedHat patched 2.4 kernels. 2500 Patch by Keshava Gowda 2501 25022005-01-20 Miklos Szeredi <miklos@szeredi.hu> 2503 2504 * KERNEL: provide correct llseek semantics for fuse device (fixes 2505 a bug on Progeny 2.4.20 kernel). Reported by Valient Gough 2506 25072005-01-20 Miklos Szeredi <miklos@szeredi.hu> 2508 2509 * Released 2.2-pre5 (matches kernel 2.6.11-rc1-mm2) 2510 25112005-01-18 Miklos Szeredi <miklos@szeredi.hu> 2512 2513 * KERNEL ABI: remove GETDIR operation, and add OPENDIR, READDIR 2514 and RELEASEDIR. This ends the ugly hack of passing a file 2515 descriptor to the kernel, and actually makes the code simpler. 2516 25172005-01-17 Miklos Szeredi <miklos@szeredi.hu> 2518 2519 * Released 2.2-pre4 2520 25212005-01-17 Miklos Szeredi <miklos@szeredi.hu> 2522 2523 * fusermount: remove capability setting, which was the cause of 2524 problems for some users. It seems that FS related capabilities 2525 are removed by setfsuid(), so this isn't even needed. 2526 25272005-01-15 Miklos Szeredi <miklos@szeredi.hu> 2528 2529 * fix compilation on 2.4 kernels (reported by Valient Gough) 2530 2531 * fix failure to unmount bug (found by David Shaw) 2532 2533 * fusermount: improve parsing of /etc/fuse.conf 2534 25352005-01-13 Miklos Szeredi <miklos@szeredi.hu> 2536 2537 * Remove 'mount_max' and 'user_allow_other' module options. These 2538 are now checked by fusermount, and can be set in /etc/fuse.conf 2539 2540 * KERNEL: change check for fsid == 0 to capable(CAP_DAC_OVERRIDE) 2541 25422005-01-11 Miklos Szeredi <miklos@szeredi.hu> 2543 2544 * KERNEL: fix possible inode allocation problem, where 2545 sizeof(struct inode) is not aligned (found by Mike Waychison) 2546 2547 * KERNEL: use new follow_link/put_link methods 2548 2549 * KERNEL: cosmetic fixes 2550 25512005-01-10 Miklos Szeredi <miklos@szeredi.hu> 2552 2553 * Released 2.2-pre3 2554 25552005-01-10 Miklos Szeredi <miklos@szeredi.hu> 2556 2557 * Add missing code that was accidently left out 2558 25592005-01-09 Miklos Szeredi <miklos@szeredi.hu> 2560 2561 * Released 2.2-pre2 2562 25632005-01-09 Miklos Szeredi <miklos@szeredi.hu> 2564 2565 * Change "uid" mount option to "user_id" to avoid confusion with a 2566 mount option "uid" commonly used by many filesystems 2567 25682005-01-09 Miklos Szeredi <miklos@szeredi.hu> 2569 2570 * Released 2.2-pre1 2571 25722005-01-09 Miklos Szeredi <miklos@szeredi.hu> 2573 2574 * If FUSE is configured in the kernel, don't build it by default 2575 25762005-01-07 Miklos Szeredi <miklos@szeredi.hu> 2577 2578 * Compile fix by Christian Magnusson 2579 25802005-01-05 Miklos Szeredi <miklos@szeredi.hu> 2581 2582 * Fix compilation for 2.6.{0-5} kernels 2583 25842005-01-04 Miklos Szeredi <miklos@szeredi.hu> 2585 2586 * KERNEL: if request is interrupted, still keep reference to used 2587 inode(s) and file, so that FORGET and RELEASE are not sent until 2588 userspace finishes the request. 2589 2590 * remove /{sys,proc}/fs/fuse/version, and instead add an INIT 2591 request with the same information, which is more flexible, 2592 simpler, works on embedded systems. 2593 25942004-12-16 Miklos Szeredi <miklos@szeredi.hu> 2595 2596 * KERNEL ABI: update interface to make it independent of type 2597 sizes. This will help on 64 bit architectures which can run 2598 legacy 32 bit applications. 2599 2600 * KERNEL ABI: add "len" field to request headers. This will allow 2601 sending/receiving requests in multiple chunks. 2602 2603 * KERNEL: handle file type change more intelligently 2604 2605 * LIB: "-o debug" option should disable backgrounding (fix by 2606 Fabien Reygrobellet) 2607 26082004-12-13 Miklos Szeredi <miklos@szeredi.hu> 2609 2610 * KERNEL: invalidate dentry/attributes if interrupted request 2611 could leave filesystem in an unknown state. 2612 26132004-12-12 Miklos Szeredi <miklos@szeredi.hu> 2614 2615 * KERNEL: lots of cleanups related to avoiding possible deadlocks. 2616 These will cause some regressions, but stability is considered 2617 more important. If any of these features turns out to be 2618 important, it can be readded with the deadlock problems addressed. 2619 2620 * Make all requests interruptible (only with SIGKILL currently). 2621 This can be used to break any deadlock produced by the userspace 2622 filesystem accessing it's own exported files. The RELEASE request 2623 is special, because if it's interrupted before sending it to 2624 userspace it is still sent, but the reply is not awaited. 2625 2626 * If request is interrupted before being sent to userspace, and if 2627 it hasn't yet got any side effects, it is always restarted, 2628 regardless of the SA_RESTART flag. This makes these interruptions 2629 transparent to the process. 2630 2631 * Remove shared-writable mmap support, which was prone to an 2632 out-of-memory deadlock situation 2633 2634 * Remove INVALIDATE userspace initiated request 2635 2636 * Make readpages() synchronous. Asynchronous requests are 2637 deadlock prone, since they cannot be interrupted. 2638 2639 * Add readv/writev support to fuse device operations 2640 2641 * Remove some printks, which userspace FS can use for a DoS 2642 against syslog 2643 2644 * Remove 'large_read' mount option from 2.6 in kernel, check it in 2645 fusermount instead 2646 2647 * LIB: improve compatibility with a fuse.h header installed in 2648 ${prefix}/include which in turn includes the real header. 2649 2650 * LIB: improve compatibility by defining fuse_main() (which is now 2651 not used), so old configure scripts find it. 2652 26532004-12-10 Miklos Szeredi <miklos@szeredi.hu> 2654 2655 * When mounting on a subdirectory of / don't duplicate slashes at 2656 the beggining of path (spotted by David Shaw) 2657 26582004-12-09 Miklos Szeredi <miklos@szeredi.hu> 2659 2660 * Fix bug causing garbage in mount options (spotted by David Shaw) 2661 26622004-12-07 Miklos Szeredi <miklos@szeredi.hu> 2663 2664 * Add 'writepage' flag to 'fuse_file_info'. 2665 2666 * More comments in fuse.h 2667 2668 * Get rid of double underscores 2669 26702004-12-04 Miklos Szeredi <miklos@szeredi.hu> 2671 2672 * Add -D_FILE_OFFSET_BITS=64 to cflags provided by pkg-config 2673 2674 * helper.c: add -ho option, which only displays the options not 2675 the usage header. This can be used by filesystems which have 2676 their own options. 2677 26782004-12-03 Miklos Szeredi <miklos@szeredi.hu> 2679 2680 * Add source compatibility to 2.1 and 1.1 APIs. To select betwen 2681 versions simply define FUSE_USE_VERSION to 22, 21 or 11 before 2682 including the fuse header 2683 2684 * Add binary compatibility to 2.1 version of library with symbol 2685 versioning 2686 26872004-12-03 Miklos Szeredi <miklos@szeredi.hu> 2688 2689 * Released 2.1 2690 26912004-12-01 Miklos Szeredi <miklos@szeredi.hu> 2692 2693 * kernel: clean up writing functions 2694 2695 * kernel: no allocation on write in direct_io mode 2696 2697 * move linux/fuse.h to fuse_kernel.h 2698 26992004-11-30 Miklos Szeredi <miklos@szeredi.hu> 2700 2701 * kernel: clean up reading functions 2702 27032004-11-29 Miklos Szeredi <miklos@szeredi.hu> 2704 2705 * kernel: make readpage() uninterruptible 2706 2707 * kernel: check readonly filesystem flag in fuse_permission 2708 2709 * lib: don't die if version file not found and new style device 2710 exists 2711 2712 * lib: add '-r' option, which is short for '-o ro' 2713 2714 * fusermount: simplify device opening 2715 2716 * kernel: when direct_io is turend on, copy data directly to 2717 destination without itermediate buffer. More efficient and safer, 2718 since no allocation is done. 2719 2720 * fusermount: fix warning if fuse module is not loaded 2721 2722 * kernel: use /dev/fuse on 2.4 too 2723 27242004-11-26 Miklos Szeredi <miklos@szeredi.hu> 2725 2726 * libfuse API change: open, read, write, flush, fsync and release 2727 are passed a 'struct fuse_file_info' pointer containing the open 2728 flags (open and release), and the file handle. Verion changed to 2729 3.0. 2730 27312004-11-23 Miklos Szeredi <miklos@szeredi.hu> 2732 2733 * More cleanups in the kernel 2734 2735 * The 10,229 charater device number has been assigned for FUSE 2736 2737 * Version file checking fix (reported by Christian Magnusson) 2738 2739 * fusermount: opening the fuse device now doesn't need /sys. 2740 2741 * Optimize reading by controlling the maximum readahead based on 2742 the 'max_read' mount option 2743 2744 * fixes for UCLIBC (Christian Magnusson) 2745 27462004-11-19 Miklos Szeredi <miklos@szeredi.hu> 2747 2748 * Cleaned up kernel in preparation for merge into mainline: 2749 2750 * Use /sys/fs/fuse/version instead of /proc/fs/fuse/version 2751 2752 * Use real device (/dev/fuse) instead of /proc/fs/fuse/dev 2753 2754 * __user annotations for sparse 2755 2756 * allocate individual pages instead of kmalloc in fuse_readdir, 2757 fuse_read and fuse_write. 2758 2759 * Fix NFS export in case "use_ino" mount option is given 2760 2761 * Make libfuse and fusermount compatible with future versions 2762 2763 * fusermount: properly add mount options to /etc/mtab 2764 27652004-11-15 Miklos Szeredi <miklos@szeredi.hu> 2766 2767 * fusermount: do not resolve last component of mountpoint on if it 2768 is '.' or '..'. This new path resolvation is now done on mount as 2769 well as unmount. This enables relative paths to work on unmount. 2770 2771 * fusermount: parse common mount options like "ro", "rw", etc... 2772 2773 * Allow module params to be changed through sysfs 2774 27752004-11-14 Miklos Szeredi <miklos@szeredi.hu> 2776 2777 * Released 2.1-pre1 2778 27792004-11-14 Miklos Szeredi <miklos@szeredi.hu> 2780 2781 * Fix bug in fuse_readpages() causing Oops in certain situations. 2782 Bug found by Vincenzo Ciancia. 2783 2784 * Fix compilation with kernels versions > 2.6.9. 2785 27862004-11-11 Miklos Szeredi <miklos@szeredi.hu> 2787 2788 * Check kernel interface version in fusermount to prevent 2789 strangeness in case of mismatch. 2790 2791 * No need to allocate fuse_conn until actual mount happens 2792 2793 * Fix potential race between umount and fuse_invalidate 2794 2795 * Check superblock of proc file in addition to inode number 2796 2797 * Fix race between request_send_noreply() and fuse_dev_release() 2798 27992004-11-10 Miklos Szeredi <miklos@szeredi.hu> 2800 2801 * Separate configure for the kernel directory 2802 2803 * Don't allow write to return more than 'count' 2804 2805 * Extend kernel interface for future use 2806 28072004-11-09 Miklos Szeredi <miklos@szeredi.hu> 2808 2809 * Fix 'makeconf.sh' to use autoreconf if available 2810 28112004-11-08 Miklos Szeredi <miklos@szeredi.hu> 2812 2813 * Add ino argument to 'fuse_dirfil_t'. NOTE: This breaks source 2814 compatibility with earlier versions. To compile earier versions 2815 just add '-DFUSE_DIRFIL_COMPAT' compile flag or fix the source. 2816 Do not use the "use_ino" mount flag with filesystems compiled with 2817 FUSE_DIRFIL_COMPAT. 2818 2819 * Add pkg-config support. To compile a FUSE based filesystem you 2820 can do "gcc -Wall `pkg-config --cflags --libs fuse` myfs.c -o myfs" 2821 or similar. Note, that the PKG_CONFIG_PATH environment variable 2822 usually needs to be set to "/usr/local/lib/pkgconfig". 2823 2824 * fuse.h is now installed in ${prefix}/include/fuse/ 2825 28262004-11-02 Miklos Szeredi <miklos@szeredi.hu> 2827 2828 * Added "use_ino" mount option. This enables the filesystems to 2829 set the st_ino field on files 2830 28312004-11-01 Miklos Szeredi <miklos@szeredi.hu> 2832 2833 * Fix compile problems with ancient (<=2.4.18) kernels (reported 2834 by Jeremy Smith) 2835 2836 * Add "allow_root" mount option. Patch by Yaroslav Rastrigin 2837 2838 * Clear the 'exited' flag when mail loop is finished 2839 28402004-10-28 Miklos Szeredi <miklos@szeredi.hu> 2841 2842 * Make xattr functions work under 2.6 (bug found by Vincenzo 2843 Ciancia) 2844 28452004-10-26 Miklos Szeredi <miklos@szeredi.hu> 2846 2847 * Reset request in fuse_flush() (bugreport by David Shaw) 2848 28492004-10-21 Miklos Szeredi <miklos@szeredi.hu> 2850 2851 * fuse_main() now does not exit on error, rather it returns an 2852 error code 2853 2854 * Exported __fuse_setup() and __fuse_teardown() functions, which 2855 make it easier to implement a custom event loop. 2856 2857 * Use daemon() call to background the filesystem after mounting. 2858 This function closes the standard input, output and error and 2859 changes the current working directory to "/". 2860 28612004-10-14 Miklos Szeredi <miklos@szeredi.hu> 2862 2863 * Released 1.9 2864 28652004-10-09 Miklos Szeredi <miklos@szeredi.hu> 2866 2867 * Don't allow fuse_flush() to be interrupted (bug found by David 2868 Shaw) 2869 28702004-09-27 Miklos Szeredi <miklos@szeredi.hu> 2871 2872 * Add PID to fuse_context. Patch by Steven James 2873 2874 * Change file handle type to 'unsigned long' in kernel interface 2875 28762004-09-22 Miklos Szeredi <miklos@szeredi.hu> 2877 2878 * A slight API change: fuse_get_context() doesn't need the "fuse" 2879 pointer, but the returned context contains it instead. The 2880 fuse_get() function is not needed anymore, so it's removed. 2881 2882 * Fix mounting and umounting FUSE filesystem under another FUSE 2883 filesystem by non-root (bug spotted by Valient Gough) 2884 28852004-09-21 Miklos Szeredi <miklos@szeredi.hu> 2886 2887 * Fix deadlock in case of memory allocation failure. Patch by 2888 Christian Magnusson 2889 28902004-09-16 Miklos Szeredi <miklos@szeredi.hu> 2891 2892 * Check memory allocation failures in libfuse 2893 28942004-09-14 Miklos Szeredi <miklos@szeredi.hu> 2895 2896 * Check temporary file creation failure in do_getdir(). Bug 2897 spotted by Terje Oseberg 2898 28992004-09-13 Miklos Szeredi <miklos@szeredi.hu> 2900 2901 * Allow "large_read" option for 2.6 kernels but warn of deprecation 2902 2903 * Make requests non-interruptible so race with FORGET is avoided. 2904 This is only a temporary solution 2905 2906 * Support compiling FUSE kernel module on 2.4.x UML kernels 2907 29082004-09-09 Miklos Szeredi <miklos@szeredi.hu> 2909 2910 * Fix bug in case two FORGETs for the same node are executed in 2911 the wrong order. Bug spotted and endured for months by Franco 2912 Broi, and logfile for solution provided by Terje Oseberg 2913 29142004-09-01 Miklos Szeredi <miklos@szeredi.hu> 2915 2916 * Add -D_REENTRANT to the compile flags 2917 2918 * Add documentation of fuse internals by Terje Oseberg 2919 29202004-08-16 Miklos Szeredi <miklos@szeredi.hu> 2921 2922 * Change release method to be non-interruptible. Fixes bug 2923 causing missing release() call when program which has opened files 2924 is killed (reported by Franco Broi and David Shaw) 2925 29262004-07-29 Miklos Szeredi <miklos@szeredi.hu> 2927 2928 * Add fuse_invalidate() to library API 2929 29302004-07-26 Miklos Szeredi <miklos@szeredi.hu> 2931 2932 * Check permissions in setattr if 'default_permissions' flag is 2933 set. Bug spotted by Damjan Lango 2934 29352004-07-24 Miklos Szeredi <miklos@szeredi.hu> 2936 2937 * 'large_read' mount option removed for 2.6 kernels, since the 2938 default (dynamic read size) is better 2939 2940 * Extend kernel API with file handles. A file handle is returned 2941 by open, and passed to read, write, flush, fsync and release. 2942 This is currently only used for debug output in the library. 2943 2944 * Security changes: 2945 2946 * Change the current directory to the mountpoint before checking 2947 the permissions and mount filesystem on "." 2948 2949 * By default don't modprobe the fuse module for non-root. The old 2950 behavior can be restored with the '--enable-auto-modprobe' flag of 2951 ./configure 2952 2953 * By default don't allow shared writable mappings for non-root. 2954 The old behavior can be restored with the 'user_mmap=1' module 2955 parameter 2956 29572004-07-23 Miklos Szeredi <miklos@szeredi.hu> 2958 2959 * Clean up mount option passing to fusermount and to fuse_new() 2960 BEWARE: this changes the userspace API slightly, and the command 2961 line usage of programs using fuse_main() 2962 29632004-07-20 Miklos Szeredi <miklos@szeredi.hu> 2964 2965 * Optimize reading under 2.6 kernels by issuing multiple page 2966 asynchronous read requests 2967 29682004-07-18 Miklos Szeredi <miklos@szeredi.hu> 2969 2970 * Only use redirty_page_for_writepage() for kernels >= 2.6.6 2971 29722004-07-16 Miklos Szeredi <miklos@szeredi.hu> 2973 2974 * Separate directory entry and inode attribute validity timer 2975 2976 * New write semaphore to stop page writeback during truncate 2977 2978 * Fsync now waits for all writes to complete before sending the 2979 request 2980 2981 * Optimization: if a page is completely written by 2982 fuse_commit_write(), clear the dirty flag and set the uptodate 2983 flag for that page 2984 2985 * Some memory cleanup at exit 2986 29872004-07-13 Miklos Szeredi <miklos@szeredi.hu> 2988 2989 * Add FUSE_HARD_REMOVE flag, and '-i' option to fuse main, which 2990 disable the "hide if open" behavior of unlink/rename. 2991 2992 * If temporary buffer allocation fails in raw read, fall back to a 2993 smaller buffer 2994 29952004-07-12 Miklos Szeredi <miklos@szeredi.hu> 2996 2997 * Fix bug in do_open() in libfuse: open count was incremented 2998 after the reply is sent so it could race with unlink/forget and 2999 cause an abort. 3000 30012004-07-08 Miklos Szeredi <miklos@szeredi.hu> 3002 3003 * When performing create or remove operation, refresh the parent's 3004 attributes on next revalidate, as i_nlink (and maybe size/time) 3005 could be inacurate. 3006 3007 * Use redirty_page_for_writepage() in fuse_writepage() for skipped 3008 pages (2.6 only) 3009 3010 * Set set_page_dirty address space operation (2.6 only) 3011 30122004-07-06 Miklos Szeredi <miklos@szeredi.hu> 3013 3014 * Minor fix in read: print debug info even if read size is zero 3015 30162004-07-04 Miklos Szeredi <miklos@szeredi.hu> 3017 3018 * Fix race between truncate and writepage (fsx-linux now runs 3019 without error) 3020 30212004-07-02 Miklos Szeredi <miklos@szeredi.hu> 3022 3023 * Fix kernel hang on mkfifo under 2.4 kernels (spotted and patch 3024 by Mattias Wadman) 3025 3026 * Added option for direct read/write (-r) 3027 3028 * Fix revalidate time setting for newly created inodes 3029 3030 * Remove uid==0 check for '-x' option in fusermount (kernel checks 3031 this) 3032 3033 * fuse_main() only installs handlers for signals (out of INT, HUP, 3034 TERM, PIPE), for which no handler has yet been installed 3035 3036 * Add module option 'user_allow_other' which if set to non-zero 3037 will allow non root user to specify the 'allow_other' mount option 3038 ('-x' option of fusermount) 3039 3040 * Fix deadlock between page writeback completion and truncate 3041 (bug found by Valient Gough with the fsx-linux utility) 3042 30432004-07-01 Miklos Szeredi <miklos@szeredi.hu> 3044 3045 * Change passing fuse include dir to 2.6 kernel make system more 3046 robust (fixes compile problems seen on SuSE 9.1 with updated 2.6 3047 kernel) 3048 30492004-06-30 Miklos Szeredi <miklos@szeredi.hu> 3050 3051 * Acquire inode->i_sem before open and release methods to prevent 3052 concurrent rename or unlink operations. 3053 3054 * Make __fuse_read_cmd() read only one command. This allows 3055 multiplexing the fuse file descriptor with other event sources 3056 using select() or poll() (patch by Jeff Harris) 3057 3058 * Export 'exited' flag with __fuse_exited() (patch by Jeff Harris) 3059 30602004-06-27 Miklos Szeredi <miklos@szeredi.hu> 3061 3062 * Fix file offset wrap around at 4G when doing large reads 3063 30642004-06-24 Miklos Szeredi <miklos@szeredi.hu> 3065 3066 * Fix memory leak in open (Valient Gough) 3067 30682004-06-24 Miklos Szeredi <miklos@szeredi.hu> 3069 3070 * Add "close after delete" support to libfuse (patch by Valient 3071 Gough) 3072 3073 * Cancel all worker threads before exit in multithreaded mode 3074 30752004-06-23 Miklos Szeredi <miklos@szeredi.hu> 3076 3077 * Fix locking bugs 3078 3079 * Don't send reply to RELEASE 3080 3081 * Work with newer libtool (1.5a) 3082 3083 * Check for st_atim member of struct stat 3084 30852004-06-22 Miklos Szeredi <miklos@szeredi.hu> 3086 3087 * No request allocation needed on inode and file release 3088 30892004-06-21 Miklos Szeredi <miklos@szeredi.hu> 3090 3091 * Fix possible inode leak in userspace in case of unfinished 3092 lookup/mknod/mkdir/symlink/link operation. 3093 30942004-06-20 Miklos Szeredi <miklos@szeredi.hu> 3095 3096 * Fix some races and cleanups in fuse_read_super() 3097 30982004-06-19 Miklos Szeredi <miklos@szeredi.hu> 3099 3100 * Requests are allocated at open time 3101 31022004-06-03 Miklos Szeredi <miklos@szeredi.hu> 3103 3104 * Build shared library as well as static (using libtool) 3105 3106 * Change FUSE_MINOR_VERSION from 1 to 0. I know it's illegal but 3107 there has not been a release with the previous minor number, and I 3108 hope nobody is using it for anything. 3109 3110 * Change fuse_main(), so that default behavior is to go into 3111 background if mount is successful. '-f' and '-d' options disable 3112 backgrounding. This fixes the "Why does my FUSE daemon hang?" 3113 newbie complaint. 3114 3115 * Cache ENOSYS (function not implemented) errors on *xattr, flush 3116 and fsync 3117 3118 * Don't call getdir method from open() only from first readdir(). 3119 Open is sometimes just used to store the current directory 3120 (e.g. find) 3121 31222004-05-18 Miklos Szeredi <miklos@szeredi.hu> 3123 3124 * Added flush() call 3125 31262004-05-04 Miklos Szeredi <miklos@szeredi.hu> 3127 3128 * Extended attributes support for 2.4 (patch by Cody Pisto) 3129 31302004-04-20 Miklos Szeredi <miklos@szeredi.hu> 3131 3132 * Fixed parser with modversions (Mattias Wadman) 3133 31342004-04-19 Miklos Szeredi <miklos@szeredi.hu> 3135 3136 * Added mount option parser to 2.4 build 3137 31382004-04-13 Miklos Szeredi <miklos@szeredi.hu> 3139 3140 * Replaced binary mount data with text options 3141 3142 * Show FUSE specific mount options in /proc/mounts 3143 3144 * Check in fuse.h whether _FILE_OFFSET_BITS is set to 64 3145 31462004-04-09 Miklos Szeredi <miklos@szeredi.hu> 3147 3148 * Check some limits so userspace won't get too big requests 3149 31502004-04-05 Miklos Szeredi <miklos@szeredi.hu> 3151 3152 * Kill compile warning 3153 3154 * Upgraded user-mount patch for 2.6.5 3155 31562004-04-02 Miklos Szeredi <miklos@szeredi.hu> 3157 3158 * Add detection of user-mode-linux to configure 3159 31602004-03-31 Miklos Szeredi <miklos@szeredi.hu> 3161 3162 * fixed zero size case for getxattr and listxattr 3163 31642004-03-30 Miklos Szeredi <miklos@szeredi.hu> 3165 3166 * new fusermount flag '-z': lazy unmount, default is not lazy 3167 3168 * Extended attributes operations added (getxattr, setxattr, 3169 listxattr, removexattr) 3170 31712004-03-25 Miklos Szeredi <miklos@szeredi.hu> 3172 3173 * If filesystem doesn't define a statfs operation, then an 3174 all-zero default statfs is returned instead of ENOSYS 3175 31762004-03-24 Miklos Szeredi <miklos@szeredi.hu> 3177 3178 * Add FS_BINARY_MOUNTDATA filesystem flag for kernels > 2.6.4 3179 31802004-03-09 Miklos Szeredi <miklos@szeredi.hu> 3181 3182 * Fix for uClinux (Christian Magnusson) 3183 31842004-03-02 Miklos Szeredi <miklos@szeredi.hu> 3185 3186 * fuse_main() adds "-n progname" to the fusermount command line 3187 3188 * More kernel interface changes: 3189 3190 * Lookup/getattr return cache timeout values 3191 31922004-02-25 Miklos Szeredi <miklos@szeredi.hu> 3193 3194 * Clean up option parsing in fuse_main() 3195 3196 * Added fuse_get() function which returns the fuse object created 3197 by fuse_main() 3198 31992004-02-20 Miklos Szeredi <miklos@szeredi.hu> 3200 3201 * removed old way of mounting (fusermount mountpoint program) 3202 3203 * more kernel interface changes: 3204 3205 * added nanosecond precision to file times 3206 3207 * removed interface version from mount data 3208 3209 * added /proc/fs/fuse/version which contains MAJOR.MINOR 3210 32112004-02-19 Miklos Szeredi <miklos@szeredi.hu> 3212 3213 * statfs library API changed to match other methods. Since this 3214 is not backward compatible FUSE_MAJOR_VERSION is changed to 2 3215 3216 * kernel interface changes follow: 3217 3218 * statfs changed to 64 bits, added 'bavail' field 3219 3220 * add generation number to lookup result 3221 3222 * optimized mknod/mkdir/symlink/link (no separate lookup is 3223 needed) 3224 3225 * rdev size increased to 32 bits for mknod 3226 3227 * kernel interface version changed to 3.1 3228 32292004-02-18 Miklos Szeredi <miklos@szeredi.hu> 3230 3231 * user-mount upgraded for 2.6.3 kernel 3232 32332004-02-17 Miklos Szeredi <miklos@szeredi.hu> 3234 3235 * Added user-mount.2.6.2-rc3.patch 3236 3237 * Add FS_SAFE flag to fuse filesystem 3238 3239 * fusermount should allow (un)mounting for non-root even if not 3240 suid-root 3241 32422004-02-12 Miklos Szeredi <miklos@szeredi.hu> 3243 3244 * Remove MS_PERMISSION mount flag (that means something else now) 3245 32462004-02-10 Miklos Szeredi <miklos@szeredi.hu> 3247 3248 * Added check for i_size_read/write functions to configure.in 3249 (patch by Valient Gough) 3250 32512004-02-06 Miklos Szeredi <miklos@szeredi.hu> 3252 3253 * Fixed writing >= 2G files 3254 3255 * Check file size on open (with generic_file_open()) 3256 3257 * Readpage calls flush_dcache_page() after storing data 3258 3259 * Use i_size_read/write for accessing inode->i_size 3260 3261 * Make loopback mount of a fuse file work 3262 32632004-02-04 Miklos Szeredi <miklos@szeredi.hu> 3264 3265 * Released 1.1 3266 32672004-01-29 Miklos Szeredi <miklos@szeredi.hu> 3268 3269 * Properly check if the inode exists in fuse_invalidate 3270 32712004-01-27 Miklos Szeredi <miklos@szeredi.hu> 3272 3273 * Added -q option for fusermount 3274 3275 * fuse_unmount() now uses -q option of fusermount, so no error is 3276 printed if the cause of the program exit is that the filesystem 3277 has already been unmounted 3278 3279 * Fix i_nlink correctness after rmdir/unlink 3280 32812004-01-26 Miklos Szeredi <miklos@szeredi.hu> 3282 3283 * Released 1.1-pre2 3284 32852004-01-26 Miklos Szeredi <miklos@szeredi.hu> 3286 3287 * Fix typo (thanks Marcos Dione) 3288 3289 * Compile fixes for 2.4 kernels 3290 32912004-01-23 Miklos Szeredi <miklos@szeredi.hu> 3292 3293 * Fix CONFIG_MODVERSIONS compile on 2.6 3294 32952004-01-22 Miklos Szeredi <miklos@szeredi.hu> 3296 3297 * Write all pending data before a RELEASE operation 3298 3299 * Suppress 'Bad file descriptor' warning on exit 3300 3301 * Replaced fusermount option '-d xxx' with '-n xxx' so it doesn't 3302 get confused with '-d' of fuse_main() (sorry about this change) 3303 3304 * New fusermount option '-l' which enables big reads. Big reads 3305 are now disabled by default. 3306 3307 * fuse_main() can accept fusermount arguments after a '--' 3308 33092004-01-19 Miklos Szeredi <miklos@szeredi.hu> 3310 3311 * Support for exporting filesystem over NFS (see README.NFS) 3312 33132004-01-14 Miklos Szeredi <miklos@szeredi.hu> 3314 3315 * Support non-blocking writepage on 2.6. This makes FUSE behave 3316 much more nicely in low-memory situations 3317 3318 * Fix 32-bit dev handling in getattr and mknod for 2.6 kernels. 3319 (Note: the mknod method does not yet use 32bit device number) 3320 33212004-01-13 Miklos Szeredi <miklos@szeredi.hu> 3322 3323 * Code cleanups 3324 33252004-01-07 Miklos Szeredi <miklos@szeredi.hu> 3326 3327 * Released 1.1-pre1 3328 33292004-01-06 Miklos Szeredi <miklos@szeredi.hu> 3330 3331 * Integrated 2.6 kernel support patch by Michael Grigoriev 3332 3333 * Improvements and cleanups for 2.6 kernels 3334 33352004-01-05 Miklos Szeredi <miklos@szeredi.hu> 3336 3337 * Added -d option to fusermount 3338 33392003-12-15 Miklos Szeredi <miklos@szeredi.hu> 3340 3341 * Added major+minor version to library API, and minor version to 3342 kernel API 3343 33442003-12-13 David McNab <david@rebirthing.co.nz> 3345 3346 * Implemented fsync support in examples/example.py 3347 3348 * Implemented 'fsync' and 'statfs' methods in python 3349 interface 3350 33512003-12-12 Miklos Szeredi <miklos@szeredi.hu> 3352 3353 * Make it compile on 2.4.19. 3354 3355 * Add fsync operation (write file failed on xemacs & vi) 3356 33572003-12-12 David McNab <david@rebirthing.co.nz> 3358 3359 * Added distutils support to the python module, as per standard 3360 python development practice 3361 33622003-12-11 Miklos Szeredi <miklos@szeredi.hu> 3363 3364 * Add file locking for mount/unmount (based on patch by Valient 3365 Gough) 3366 33672003-12-11 David McNab <david@rebirthing.co.nz> 3368 3369 * Python filesystem - was broken with python2.3, now fixed: 3370 - changed PyTuple_* calls to PySequence_*, because os.lstat 3371 is no longer returning a pure tuple 3372 - changed PyInt_Check() calls to also call PyLong_Check, 3373 to cover for cases (eg os.lstat) where longs are returned 3374 - Added support for file 'release' handling, which IMO is 3375 essential since this signals to a FS that writes to a file 3376 are complete (and therefore the file can now be disposed of 3377 meaningfully at the python filesystem's discretion) 3378 - Added '__init__' handler to base Fuse class, which allows 3379 your Python class to know the mountpoint and mount args, 3380 as attributes myfs.mountpoint, myfs.optlist, myfs.optdict 3381 3382 * General: 3383 - added 'mount.fuse' script (in util/ dir), which is meant to be 3384 symlinked from /sbin, and which allows FUSE filesystems to 3385 be mounted with the 'mount' command, and listed in fstab; 3386 also, mount arguments get passed to your filesystem 3387 3388 33892003-11-04 Miklos Szeredi <miklos@szeredi.hu> 3390 3391 * Fix kernel version detection (again). Bugreport by Peter Levart 3392 33932003-11-03 Miklos Szeredi <miklos@szeredi.hu> 3394 3395 * Applied read combining patch by Michael Grigoriev (tested by 3396 Valient Gough and Vincent Wagelaar) 3397 33982003-10-22 Miklos Szeredi <miklos@szeredi.hu> 3399 3400 * Mtab handling fix in fusermount by "Valient Gough" (SF patch 3401 #766443) 3402 34032003-10-13 Miklos Szeredi <miklos@szeredi.hu> 3404 3405 * Error code fixes in kernel module 3406 34072003-10-04 Miklos Szeredi <miklos@szeredi.hu> 3408 3409 * kernel version detection fix 3410 3411 * fusermount now uses "lazy" umount option 3412 3413 * fusermount can use modprobe with module-init-tools 3414 34152003-09-08 Miklos Szeredi <miklos@szeredi.hu> 3416 3417 * Integrated caching patch by Michael Grigoriev 3418 3419 * Added "Filesystems" file with descriptions of projects using 3420 FUSE 3421 3422 * Added patch by Michael Grigoriev to allow compliation of FUSE 3423 kernel module for 2.6 kernels 3424 34252003-06-02 Miklos Szeredi <miklos@szeredi.hu> 3426 3427 * And another spec-file fix by Achim Settelmeier 3428 34292003-05-26 Miklos Szeredi <miklos@szeredi.hu> 3430 3431 * Spec-file fix by Achim Settelmeier 3432 34332003-03-10 Miklos Szeredi <miklos@szeredi.hu> 3434 3435 * Fix umount oops (found by Samuli Kärkkäinen) 3436 34372003-03-05 Miklos Szeredi <miklos@szeredi.hu> 3438 3439 * Merge of fuse_redhat.spec and fuse.spec by Achim Settelmeier 3440 34412003-03-04 Miklos Szeredi <miklos@szeredi.hu> 3442 3443 * Updated fuse.spec file (Achim Settelmeier) 3444 34452003-02-19 Miklos Szeredi <miklos@szeredi.hu> 3446 3447 * Version 1.0 released 3448 34492003-02-12 Miklos Szeredi <miklos@szeredi.hu> 3450 3451 * SuSE compilation fix by Juan-Mariano de Goyeneche 3452 34532002-12-10 Miklos Szeredi <miklos@szeredi.hu> 3454 3455 * The release() VFS call is now exported to the FUSE interface 3456 34572002-12-05 Miklos Szeredi <miklos@szeredi.hu> 3458 3459 * 64 bit file offset fixes in the fuse kernel module 3460 3461 * Added function 'fuse_exit()' which can be used to exit the main 3462 loop 3463 34642002-12-03 Miklos Szeredi <miklos@szeredi.hu> 3465 3466 * Added _FILE_OFFSET_BITS=64 define to fuse.h. Note, that this is 3467 an incompatible interface change. 3468 34692002-10-28 Miklos Szeredi <miklos@szeredi.hu> 3470 3471 * Portablility fix (bug reported by C. Chris Erway) 3472 34732002-10-25 Miklos Szeredi <miklos@szeredi.hu> 3474 3475 * Use Mark Glines' fd passing method for default operation instead 3476 of old reexec 3477 34782002-10-22 Miklos Szeredi <miklos@szeredi.hu> 3479 3480 * fix "Stale NFS file handle" bug caused by changes in 2.4.19 3481 34822002-10-22 Miklos Szeredi <miklos@szeredi.hu> 3483 3484 * fix incompatiblity with Red Hat kernels, with help from Nathan 3485 Thompson-Amato. 3486 34872002-04-18 Mark Glines <mark@glines.org> 3488 3489 * added an alternative to fuse_mount(), called 3490 fuse_mount_ioslave(), which does not need to reexec the 3491 FUSE program. 3492 * added a small helper util needed by fuse_mount_ioslave(). 3493 34942002-03-16 Mark Glines <mark@glines.org> 3495 3496 * use struct fuse_statfs everywhere possible to avoid problems 3497 with the headerfiles changing struct statfs member sizes 3498 34992002-03-01 Miklos Szeredi <miklos@szeredi.hu> 3500 3501 * Another RPM spec file for RedHat >= 7 by Ian Pilcher 3502 35032002-01-14 Miklos Szeredi <miklos@szeredi.hu> 3504 3505 * RPM support by Achim Settelmeier 3506 35072002-01-09 Miklos Szeredi <miklos@szeredi.hu> 3508 3509 * Version 0.95 released 3510 35112002-01-09 Miklos Szeredi <miklos@szeredi.hu> 3512 3513 * Revaidate all path components not just the last, this means a 3514 very small performance penalty for being more up-to-date. 3515 35162002-01-08 Miklos Szeredi <miklos@szeredi.hu> 3517 3518 * Update and fix python interface 3519 35202002-01-07 Mark Glines <mark@glines.org> 3521 3522 * Added statfs() support to kernel, lib, examples, and perl! 3523 35242001-12-26 Miklos Szeredi <miklos@szeredi.hu> 3525 3526 * Better cross compilation support 3527 3528 * Ported to Compaq IPAQ 3529 35302001-12-20 Miklos Szeredi <miklos@szeredi.hu> 3531 3532 * Added function fuse_get_context() to library API (inspired by 3533 patch from Matt Ryan) 3534 3535 * Added flags to fusermount and to kernel interface to control 3536 permission checking 3537 3538 * Integrated fuse_set_operations() into fuse_new() 3539 35402001-12-08 Miklos Szeredi <miklos@szeredi.hu> 3541 3542 * Applied header protection + extern "C" patch by Roland 3543 Bauerschmidt 3544 35452001-12-02 Miklos Szeredi <miklos@szeredi.hu> 3546 3547 * Added perl bindings by Mark Glines 3548 35492001-11-21 Miklos Szeredi <miklos@szeredi.hu> 3550 3551 * Cleaned up way of mounting simple filesystems. 3552 3553 * fuse_main() helper function added 3554 35552001-11-18 Miklos Szeredi <miklos@szeredi.hu> 3556 3557 * Optimized read/write operations, so that minimal copying of data 3558 is done 3559 35602001-11-14 Miklos Szeredi <miklos@szeredi.hu> 3561 3562 * Python bindings by Jeff Epler added 3563 35642001-11-13 Miklos Szeredi <miklos@szeredi.hu> 3565 3566 * Fixed vfsmount reference leak in fuse_follow_link 3567 3568 * FS blocksize is set to PAGE_CACHE_SIZE, blksize attribute from 3569 userspace is ignored 3570 35712001-11-09 Miklos Szeredi <miklos@szeredi.hu> 3572 3573 * Started ChangeLog 3574