| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
| |
According to "How to Write Shared Libraries" by Ulrich Drepper
(https://www.akkadia.org/drepper/dsohowto.pdf), the version script
should contain the exported name of the versioned symbol once in each
tag for which it has been defined by .symver.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
We re-introduce the functionality of invalidating the caches for an
inode specified by path by adding a new routine
fuse_invalidate_path. This is useful for network-based file systems
which use the high-level API, enabling them to notify the kernel about
external changes.
This is a revival of Miklos Szeredi's original code for the
fuse_invalidate routine.
|
| |
|
|
|
| |
They were removed from source here: https://github.com/libfuse/libfuse/commit/73b6ff4b75cf1228ea61262c293fcb2fda5dfeea
|
|
|
|
|
|
| |
- Fixes commit d49f2e77b4.
- Fixes commit 199fc0f833.
- Thanks to Github user mtheall for the review!
|
|
|
|
|
| |
The current behavior makes it difficult to add help for
additional options. With the change, this becomes a lot easier.
|
| |
|
|
|
|
| |
Fixes #59.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Help and version messages can be generated using the new
fuse_lowlevel_help(), fuse_lowlevel_version(), fuse_mount_help(), and
fuse_mount_version() functions.
The fuse_parse_cmdline() function has been made more powerful
to do this automatically, and is now explicitly intended only
for low-level API users.
This is a code simplication patch. We don't have to parse for --help and
--version in quite as many places, and we no longer have a low-level
initialization function be responsible for the (super-high level) task
of printing a program usage message.
In the high-level API, we can now handle the command line parsing
earlier and avoid running other initialization code if we're just going
to abort later on.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The only struct fuse_chan that's accessible to the user application is
the "master" channel that is returned by fuse_mount and stored in struct
fuse_session.
When using the multi-threaded main loop with the "clone_fd" option, each
worker thread gets its own struct fuse_chan. However, none of these are
available to the user application, nor do they hold references to struct
fuse_session (the pointer is always null).
Therefore, any presence of struct fuse_chan can be removed
without loss of functionality by relying on struct fuse_session instead.
This reduces the number of API functions and removes a potential source
of confusion (since the new API no longer looks as if it might be
possible to add multiple channels to one session, or to share one
channel between multiple sessions).
Fixes issue #17.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Remove fuse_chan_bufsize() from the lowlevel API.
fuse_session_receive_buf() is now responsible for allocating memory for the
buffer.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Clean up fuse_chan related interfaces. Remove the following from the
lowlevel library API:
struct fuse_chan_ops;
fuse_chan_new();
fuse_chan_session();
fuse_chan_recv();
fuse_chan_send();
|
|
|
|
|
|
|
|
|
|
| |
Clean up fuse_session related interfaces. Remove the following from the
lowlevel library API:
struct fuse_session_ops;
fuse_session_new();
fuse_session_process();
fuse_session_data();
|
|
|
|
|
| |
Replace fuse_session_next_chan() with fuse_session_chan(), as multiple
channels per session were never actually supported and probably never will.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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().
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This works similar to "noforget" except that eventually the node will
be allowed to expire from the cache.
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Retrieve data stored in the kernel buffers for a given inode.
|
|
|
|
| |
Request data to be stored in the kernel buffers for a given inode.
|
|
|
|
|
|
|
|
|
|
| |
Add new ->write_buf() method to low level interface. This
allows passig a generic buffer, either containing a memory buffer
or a file descriptor. This allows implementing zero copy writes.
Add fuse_session_receive_buf() and fuse_session_process_buf()
which may be used in event loop implementations to replace
fuse_chan_recv() and fuse_session_process() respectively.
|
|
|
|
|
|
|
| |
fuse_versionscript included fuse_chan_new in both FUSE_2.4 and
FUSE_2.6. Remove the FUSE_2.4, which is invalid.
Reported by Raymes Khoury, who discovered this with the gold linker
|
|
|
|
|
|
|
|
| |
Add a generic buffer interface for use with I/O. Buffer vectors are
supplied and each buffer in the vector may be a memory pointer or a
file descriptor.
The fuse_reply_fd() interface is converted to using buffers.
|
| |
|
|
|
|
|
|
| |
* Make sure all global symbols are prefixed with "fuse_" or "cuse_"
* Released 2.8.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for mknod, mkdir and create requests by linux kernel version
2.6.31 or later, otherwise the umask is set to zero. Also
introduce a new feature flag: FUSE_CAP_DONT_MASK. If the kernel
supports this feature, then this flag will be set in conn->capable
in the ->init() method. If the filesystem sets this flag in in
conn->want, then the create modes will not be masked.
* Add low level interfaces for lookup cache and attribute
invalidation. This feature is available in linux kernels 2.6.31
or later. Patch by John Muir
* Kernel interface version is now 7.12
|
|
|
|
|
|
| |
level lib) functions to query the supplementary group IDs for the
current request. Currently this is implemented on Linux by
reading from the /proc filesystem.
|
| |
|