| Commit message (Collapse) | Author | Age |
|
|
|
| |
Fixes #59.
|
|
|
|
|
|
| |
This distinction no longer makes sens. fuse_lowlevel.c already contains
several session related functions, and fuse_session.c contains various
stuff that is more related to the channel interface.
|
|
|
|
|
| |
This should make more clear what file contains code for what
purpose.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
There is no consumer of it down the line.
|
|
|
|
| |
Also, do not include "General options" in usage message.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
| |
This function is only used in one place.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The only struct fuse_chan that's available to the user application is
the one that is returned by fuse_mount. However, this is also
permanently available from struct fuse_session.
A later patch will therefore remove struct fuse_chan from the
public API completely. This patch prepares for this by changing the
fuse_lowlevel_notify_* functions to take a struct fuse_session
parameter instead of a struct fuse_chan parameter.
|
| |
|
|
|
|
|
|
|
|
|
| |
IFTODT is provided by libc to convert from mode_t (as included in e.g.
struct fstat) to d_type (unsigned char element of struct dirent, as
returned by e.g. readdir). However, fuse actually uses a different
struct fuse_dirent with a "type" field of type uint32.
In other words, the semantics of (struct fuse_dirent).type are
not necessarily the same as those of (struct dirent).d_type.
|
| |
|
|\
| |
| |
| | |
trapexit-add-dirent-strlen3
|
| | |
|
| |
| |
| | |
s/disable remove file locking/disable remote file locking/
|
| |
| |
| |
| |
| |
| | |
Applied (whitespace-cleanup) to each file. Having whitespace changes
in the VCS is ugly, but it ensures that in the future committers
can run this function to *avoid* commiting any whitespace.
|
| | |
|
|/ |
|
|
|
|
| |
This should prevent some valgrind warnings.
|
|\ |
|
| |
| |
| |
| | |
Reported by Jose R. Guzman
|
| |
| |
| |
| |
| | |
This creates a separate device file descriptor for each processing thread,
which might improve performance.
|
| |
| |
| |
| |
| |
| | |
While the request lives don't free the channel associated with the request,
the answer will need to be written on the channel.
|
|/
|
|
|
| |
New functions: fuse_chan_get(), fuse_chan_put(). Removed function:
fuse_chan_destroy().
|
| |
|
|
|
|
| |
See renameat2() system call in linux-3.15 and later kernels.
|
| |
|
|
|
|
|
|
| |
This allows the filesystem to specify the time granularity it
supports when the kernel is responsible for updating times
("writeback_cache" option).
|
|
|
|
| |
Was broken by commit 561d7054d856 "libfuse: remove fuse_chan_bufsize()".
|
|
|
|
|
| |
Asynchronous direct I/O is supported by linux kernels 3.13 and
later, writeback caching is supported by 3.14 and later.
|
| |
|
|\ |
|
| |
| |
| |
| | |
This allows compiling fuse with musl.
|
| |
| |
| |
| |
| | |
Valgrind warns on close(-1). So don't do this (happens if fuse_chan_clearfd()
was called on the channel).
|
| | |
|
| |
| |
| |
| |
| |
| | |
Remove 'fh_old' which was an ABI compatibility field for a long time.
Make 'writepage' a bitfield.
|
|\ \ |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
There's actually just one type of channel and session, so we don't need the
generic callback functions.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Remove fuse_chan_bufsize() from the lowlevel API.
fuse_session_receive_buf() is now responsible for allocating memory for the
buffer.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Move the fuse_chan_ops.send and .receive implementations to fuse_lowlevel.c. The abstraction wasn't actually useful and made the the splice implementation more difficult.
Remove fuse_chan_ops.send and fuse_chan_ops.receive.
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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();
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This switches the -o no_readdirplus option to a tristate
string: -o readdirplus=(yes|no|auto)
Telling the kernel to always use readdirplus is beneficial to
filesystems (e.g. GlusterFS) where the cost to perform readdir
and readdirplus are identical.
The default remains "auto" (if supported).
|
| |
| |
| |
| |
| | |
Make requested poll events available to the filesystem. If the requested
eventsare not available, then this field is zero.
|