| Commit message (Collapse) | Author | Age |
... | |
| |
| |
| |
| |
| | |
Make requested poll events available to the filesystem. If the requested
eventsare not available, then this field is zero.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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(+)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Running "svn update" on a fuse filesystem could deadlock because of a bug in the
way the paths are locked.
Reported by Kazuaki Anami
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\| |
|
| |
| |
| |
| | |
Fix compile warning when not using node slab.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| | |
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.
|
| | |
|
| | |
|
|/
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
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 notifications and return -ENOSYS if a
particular notification is not supported.
|
|
|
|
| |
Requested by Jan Engelhardt
|
|
|
|
|
|
|
|
|
|
| |
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().
|
|
|
|
|
|
| |
MacOSX uses MachO binary format that does not support symbols.
This change comes from fuse4x project (fuse implementation for macosx).
|
| |
|
|
|
|
| |
Fix memory leak caused by a missing fuse_request_free() in fuse_reply_data().
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
When FUSE_NODE_SLAB is not defined, the build fails because of undefined
functions. Attached patch fixes the problem.
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Currently this is only useful for CUSE. Also update retrieve_reply()
method.
|
|
|
|
| |
Reported by Antonio SJ Musumeci
|
|
|
|
|
|
|
| |
Low level API: lock argument of fuse_reply_lock should have a
'const' qualifier.
Reported by Shachar Sharon
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
If configured with --disable-mtab then don't call mount(8) from
libfuse to update the mtab.
Reported by: James Sierp
|
|
|
|
|
| |
Use LRU list for cleaning up the cache if the "remember=T" option was
given.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This works similar to "noforget" except that eventually the node will
be allowed to expire from the cache.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
...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 the ambiguity of ioctl ABI on the kernel/userspace boundary
for 32bit vs. 64bit userspace
|
|
|
|
|
| |
Add ->forget_multi() operation to the lowlevel API. The filesystem
may implement this to process multiple forget requests in one call
|
|
|
|
|
| |
This allows forget requests to be processed faster and doesn't require
a modification to fuse filesystems. Reported by Terje Malmedal
|
| |
|