aboutsummaryrefslogtreecommitdiff
path: root/lib
Commit message (Collapse)AuthorAge
...
* | libfuse: add poll_events to fuse_file_infoGravatar Enke Chen2013-02-07
| | | | | | | | | | Make requested poll events available to the filesystem. If the requested eventsare not available, then this field is zero.
* | libfuse: add readdirplus support in fuse_lowlevel_opsGravatar Feng Shuo2013-02-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch implements readdirplus support in FUSE usersapce. It adds a new fuse lowlevel operations fuse_lowleve_ops::readdir_plus, corespoding mount options and helper functions to maintain buffer. [From: Eric Wong <normalperson@yhbt.net>] This makes our terminology consistent with NFS and our kernel module, as well as reducing user/developer confusion in the command-line. Note: I'm keeping "fuse_add_direntry_plus" since that is less standardized in its use than "readdirplus" for now. Signed-off-by: Feng Shuo <steve.shuo.feng@gmail.com>
* | libfuse: Add '[no_]auto_inval_data' mount optionGravatar Feng Shuo2013-02-06
| | | | | | | | | | | | | | | | | | | | | | Several caching logic changes have been made on the kernel side to better support network-based fuse filesystems. These include kernel side mtime checking and read path cache revalidation. The new caching logic is enabled through the FUSE_AUTO_INVAL_DATA init flag. Export this to the user via the '[no_]auto_inval_data' mount option. Signed-off-by: Feng Shuo <steve.shuo.feng@gmail.com>
* | libfuse: set close-on-exec flag on pipe file descriptorsGravatar Eric Wong2013-02-06
| | | | | | | | | | | | | | | | | | The FUSE library may be used from any number of programs which may also fork() + execve(), so set the close-on-exec flag to avoid inadvertant leakage of pipe file descriptors. While we're at it, attempt to use pipe2() since this is within a (currently) Linux-only code path and pipe2() offers thread-safety.
* | libfuse: fix fuse_get_context() in non fuse threadsGravatar Miklos Szeredi2013-02-05
| | | | | | | | | | | | | | | | fuse_interrupted(), fuse_get_context(), etc... crashed in non-fuse threads. Instead return false, NULL or error depending on the function. Reported by Michael Berlin
* | Merge branch 'fuse_2_9_bugfix'Gravatar Miklos Szeredi2013-02-04
|\|
| * libfuse: fix the 'remember' optionGravatar Madan Valluri2013-02-04
| | | | | | | | | | | | | | | | | | | | | | | | The lru list was not initialized for the "/" path. This resulted in remove_node_lru() crashing on LOOKUP-DOTDOT. Patch by Madan Valluri. -- ChangeLog | 4 ++++ lib/fuse.c | 4 ++++ 2 files changed, 8 insertions(+)
| * libfuse: fix crash in unlock_path()Gravatar Ratna_Bolla@dell.com2013-02-04
| | | | | | | | | | | | | | | | | | | | | | | | Patch by Ratna Manoj. queue_element_unlock() should set ->first_locked and ->second_locked to false. Discovered with 'fs_racer'. The assert(wnode->treelock == TREELOCK_WRITE) in unlock_path() was hit within minutes. Miklos: simplified patch
| * Released 2.9.2Gravatar Miklos Szeredi2012-10-01
| |
| * Fix deadlock in libfuseGravatar Miklos Szeredi2012-10-01
| | | | | | | | | | | | | | Running "svn update" on a fuse filesystem could deadlock because of a bug in the way the paths are locked. Reported by Kazuaki Anami
| * Fix missing config.h in buffer.cGravatar Miklos Szeredi2012-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | Due to an oversight, splice will never actually be used for i/o. Someone forgot to #include "config.h" in lib/buffer.c (in fact almost no files include that header). As a result, even though configure detects splice support and puts HAVE_SPLICE in config.h, buffer.c is always compiled as if there is no splice support. Also add #include "config.h" to fuse.c and fuse_lowlevel.c. These currently include it indirectly through fuse_misc.h, but we don't want to depend on that. Reported by Matthew Gabeler-Lee
* | Merge branch 'fuse_2_9_bugfix'Gravatar Miklos Szeredi2012-08-14
|\|
| * Zero out node when allocating from a slab.Gravatar Miklos Szeredi2012-08-14
| | | | | | | | Fix compile warning when not using node slab.
| * Fix "fuse internal error: node NNN not found"Gravatar Miklos Szeredi2012-08-14
| | | | | | | | | | | | | | | | | | | | Commit 4dc7e675bb (Don't unhash name in FORGET) broke the forget logic in a subtle way, resulting in "fuse internal error: node NNN not found" and causing the filesystem daemon to abort. Fix by incrementing the node refcount if nlookup goes from zero to one. Reported by Kyle Lippincott
* | Remove compatibility path handlingGravatar Miklos Szeredi2012-07-20
| | | | | | | | | | This means that now NULL is a valid path for operations that take a file descriptor if the file was unlinked and hard_remove option is specified.
* | Remove compat functionsGravatar Miklos Szeredi2012-07-19
| |
* | Remove old symbol versionsGravatar Miklos Szeredi2012-07-19
| |
* | Start of 3.0 seriesGravatar Miklos Szeredi2012-07-19
|/ | | | | | | Change the version numbers. This is going to be a new major version of the library breaking backward compatibility on the binary level as well as the source level.
* Released 2.9.1Gravatar Miklos Szeredi2012-07-19
|
* Fix crash caused by freeing a stack addressGravatar Miklos Szeredi2012-07-19
| | | | | | | | The failure path of try_get_path2() erronously tried to free the "path1" value (an address on the stack) instead of the allocated string pointed to by "path1". This caused the library to crash. Reported by Itay Perl
* libfuse: mark some data constantGravatar Miklos Szeredi2012-07-04
|
* Add FALLOCATE operationGravatar Anatol Pomozov2012-06-18
| | | | | | fallocate filesystem operation preallocates media space for the given file. If fallocate returns success then any subsequent write to the given range never fails with 'not enough space' error.
* Fix -pthread in fuse.pcGravatar Miklos Szeredi2012-05-16
| | | | | | | | Linking to a library that uses threads requires the application to be linked with -pthreads otherwise some pthread functions will be linked to stubs in glibc. So move -pthread from Libs.private to Libs in fuse.pc. Reported by Werner Fink
* Add missing fuse_fs_flock to fuse_versionscriptGravatar Miklos Szeredi2012-04-20
|
* Add 'flag_utime_omit_ok' flag to fuse_operationsGravatar Miklos Szeredi2012-04-10
| | | | | If the filesystem sets this flag then ->utimens() will receive UTIME_OMIT and UTIME_NOW values as specified in utimensat(2).
* Check protocol version before sending notificationsGravatar Miklos Szeredi2012-04-10
| | | | | Check protocol version before sending notifications and return -ENOSYS if a particular notification is not supported.
* Interpret octal escape codes in optionsGravatar Miklos Szeredi2012-01-27
| | | | Requested by Jan Engelhardt
* Revert "Add mmap() and munmap() methods to low level API"Gravatar Miklos Szeredi2012-01-24
| | | | | | | | | | This partially reverts commit 4b2157c44e6ad7e692fcffb7450143e83151d36b. Remove mmap/munmap suppor as this missed the interface changes for Linux-3.3 (API version 7.18). Only revert the mmap/munmap bits and leave the retrieve_reply API fix in place as well as the optimization in fuse_send_data_iov_fallback().
* Disable symbol versions on MacOSXGravatar Anatol Pomozov2012-01-13
| | | | | | MacOSX uses MachO binary format that does not support symbols. This change comes from fuse4x project (fuse implementation for macosx).
* Remove unnecessary mutex unlock at the end of multithreaded event loopGravatar Miklos Szeredi2012-01-02
|
* Free request in fuse_reply_data()Gravatar Miklos Szeredi2011-12-09
| | | | Fix memory leak caused by a missing fuse_request_free() in fuse_reply_data().
* Don't unhash name in FORGETGravatar Miklos Szeredi2011-12-09
| | | | | | | This resulted in ENOENT being returned for unlinked but still open files if the kernel sent a FORGET request for the parent directory. Discovered with fs_racer in LTP.
* Fix hang in wait_on_path()Gravatar Miklos Szeredi2011-12-09
| | | | | | Ville Silventoinen reported that fs_racer in LTP triggered a hang in wait_on_path(). This bug was caused by try_get_path() not resetting "ticket" on permanent failure.
* FUSE_NODE_SLAB buildfixGravatar Emmanuel Dreyfus2011-12-08
| | | | | When FUSE_NODE_SLAB is not defined, the build fails because of undefined functions. Attached patch fixes the problem.
* libfuse: Notifying the kernel of deletion.Gravatar John Muir2011-12-07
| | | | | | | | | libfuse part to allow a FUSE file-system to tell the kernel when a file or directory is deleted. If the specified dentry has the specified inode number, the kernel will unhash it. Signed-off-by: John Muir <john@jmuir.com> Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
* Add mmap() and munmap() methods to low level APIGravatar Miklos Szeredi2011-12-06
| | | | | Currently this is only useful for CUSE. Also update retrieve_reply() method.
* Add support for ioctl on directoriesGravatar Miklos Szeredi2011-12-05
| | | | Reported by Antonio SJ Musumeci
* Make lock argument of fuse_reply_lock constGravatar Miklos Szeredi2011-12-05
| | | | | | | Low level API: lock argument of fuse_reply_lock should have a 'const' qualifier. Reported by Shachar Sharon
* Reply with ENOMEM in case of failure to allocate requestGravatar Miklos Szeredi2011-10-23
| | | | | | Reply to request with ENOMEM in case of failure to allocate request structure. Otherwise the task issuing the request will just freeze up until the filesystem daemon is killed. Reported by Stephan Kulow
* Replace daemon() function with fork()Gravatar Anatol Pomozov2011-09-23
| | | | | | | | daemon() is a BSD-ism. Although it is available on many platforms it is not a standard function. Some platforms (e.g. MacOSX) deprecated it. It is safer just to use fork() function that is a part of POSIX.
* Don't ignore --disable-mtabGravatar Miklos Szeredi2011-08-31
| | | | | | | If configured with --disable-mtab then don't call mount(8) from libfuse to update the mtab. Reported by: James Sierp
* add lru for remember optionGravatar therealneworld@gmail.com2011-08-24
| | | | | Use LRU list for cleaning up the cache if the "remember=T" option was given.
* Add ->flock() operation to low and high level interfacesGravatar Miklos Szeredi2011-07-06
| | | | | | | | | | This fixes problems with emulating flock() with POSIX locking. Reported by Sebastian Pipping. As with lock/setlk/getlk most filesystems don't need to implement this, as the kernel takes care of file locking. The only reason to implement locking operations is for network filesystems which want file locking to work between clients.
* add "remember" optionGravatar therealneworld@gmail.com2011-06-02
| | | | | This works similar to "noforget" except that eventually the node will be allowed to expire from the cache.
* Check if splice/vmsplice are supportedGravatar Miklos Szeredi2011-05-27
|
* Spell checking comments, etc...Gravatar Reuben Hawkins2011-05-25
| | | | | | | | | | | ...with the help of vim :set spell modified: FAQ modified: include/fuse.h modified: include/fuse_common.h modified: include/fuse_opt.h modified: lib/fuse_kern_chan.c modified: util/fusermount.c
* Fix ioctl ABIGravatar Miklos Szeredi2011-05-19
| | | | | Fix the ambiguity of ioctl ABI on the kernel/userspace boundary for 32bit vs. 64bit userspace
* Add ->forget_multi() operationGravatar Miklos Szeredi2011-05-19
| | | | | Add ->forget_multi() operation to the lowlevel API. The filesystem may implement this to process multiple forget requests in one call
* Allow batching of forget requestsGravatar Miklos Szeredi2011-05-19
| | | | | This allows forget requests to be processed faster and doesn't require a modification to fuse filesystems. Reported by Terje Malmedal
* Fix splice_readGravatar Miklos Szeredi2011-05-19
|