| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
Disable splice by default, add "splice_read", "splice_write" and
"splice_move" options. Keep the "no_splice_*" variants, which can
disable splice even if the filesystem explicitly enables it.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This change adds support for "auto_unmount" option to libfuse.
auto_umount option unmounts the fs automatically on application
termination, whether normal or not (segfault, etc).
When auto_unmount option is specified libfuse will alway use
fusermount for mounting the fs. This change is selfcontained but
for complete functionaly it requires auto_unmount support in
fusermount tool.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
In fuse_session_loop_mt() don't pause when exiting the worker threads.
The pause() was added in 2.2.1 to prevent segfault on pthread_cancel()
on an exited, detached thread. Now worker threads are not detached
and pthread_cancel() should work fine even after the thread exited.
Reported by Boris Protopopov
|
|
|
|
|
|
|
| |
--no-canonicalize
Remove "legacy" util-linux support as missing --no-canonicalize cannot
be worked around in fuse.
|
|
|
|
|
|
| |
Fix the following warning:
fuse.c:436: warning: this decimal constant is unsigned only in ISO C90
|
|
|
|
|
| |
This will allow the memory used by the filesystem to grow and shrink
depending on how many inodes are currently cached.
|
|
|
|
|
| |
In the high level library store names shorter than 32 characters
inside "struct node". Longer names are allocated as previously.
|
|
|
|
| |
Allow hash tables to shrink as well as grow.
|
|
|
|
|
|
|
| |
Use dynamically resized hash table for looking up by name and node ID.
The chosen implementation is linear hashing, which features gradual
rehashing when while the size of the table increases.
|
|
|
|
|
|
| |
Add a new read_buf() method to the highlevel API. This allows
returning a generic buffer from the read method, which in turn allows
zero copy reads.
|
|
|
|
|
|
| |
Add new write_buf() method to the highlevel API. Similarly to the
lowlevel write_buf() method, this allows implementing zero copy
writes.
|
|
|
|
|
|
| |
When copying fuse buffers, check if the source and destination are the
same and omit the copy as appropriate. Also check if the source and
destination memory regions overlap and use memmove in that case.
|
|
|
|
|
|
|
| |
Store the first fuse_buf inside fuse_bufvec. This makes
initialization of fuse_bufvec simpler for the common case of a single
fuse_buf. If multiple fuse_buf's are needed then fuse_bufvec needs to
be dynamically allocated.
|
|
|
|
| |
Retrieve data stored in the kernel buffers for a given inode.
|