| Commit message (Collapse) | Author | Age |
|
|
|
|
|
| |
Modifying struct fuse_config in the init() handler is the canonical way
to adjust file-system implementation specific settings. There is no need
to have flags in struct fuse_operations.
|
|
|
|
|
|
| |
Several options (use_ino, etc) depend on the file system
implementation. Allowing them to be set from the command line makes no
sense.
|
|
|
|
|
|
|
| |
We now only list options that are potentially useful for an
end-user (and unlikely to accidentally break a file system). The full
list of FUSE options has been moved to the documentation of the
fuse_new() and fuse_session_new() functions.
|
|
|
|
|
|
| |
This obsoletes the ftruncate & fgetattr handlers.
Fixes #58.
|
|
|
|
|
|
| |
Instead of using command line options to modify struct fuse_conn_info
before and after calling the init() handler, we now give the file system
explicit control over this.
|
|
|
|
|
|
| |
This option really affects the behavior of the session loop, not the
low-level interface. Therefore, it does not belong in the fuse_session
object.
|
|
|
|
|
|
|
| |
The fix in commit cf4159156b was incomplete. While some false positives
are caused by sleep() in the file system taking longer than expected,
there was also a race condition where the file system would run before
the contents are initialized properly.
|
|
|
|
|
|
| |
There's now a way to inhibit the "usage" line (which actually got lost
in commit 225c12aebf2d), which makes it easier for simply file-systems
to generate good-looking --help output.
|
| |
|
|
|
|
|
|
|
|
| |
An earlier version of the fioclient.c example was intended to be
used together with cusexmp.c. The former has since evolved into
ioctl_client.c and no longer has the function necessary to test
CUSE. Therefore, we've added a new cuse_client.c that is clearly
associated with the cuse.c example file system.
|
|
|
|
|
| |
I think this is the reason for a sporadic test failure, where
fuse_lowlevel_notify_store() fails.
|
|
|
|
|
| |
This should make it more obvious at first glance what the different
examples do.
|
| |
|
|
|
|
|
| |
The new names should make it more obvious at first glance
what each example demonstrates.
|
|
|
|
| |
Also, added more comments for the same purpose.
|
|
|
|
|
| |
The current behavior makes it difficult to add help for
additional options. With the change, this becomes a lot easier.
|
| |
|
|
|
|
|
| |
This does not seem to be working. Maybe because it tries to treat the
mountpoint as a file rather than a directory?
|
|
|
|
| |
Fixes #32.
|
| |
|
| |
|
|
|
|
|
| |
These examplesdemonstrate the use of the `fuse_lowlevel_notify_store`
and `fuse_lowlevel_notify_inval_inode` functions.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
| |
Fixes issue #39.
|
| |
|
|
|
|
| |
See renameat2() system call in linux-3.15 and later kernels.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Reuse the old "readdir" callback, but add a flags argument, that has
FUSE_READDIR_PLUS in case this is a "plus" version. Filesystems can safely
ignore this flag, but if they want they can add optimizations based on it:
i.e. only retrieve the full attributes in PLUS mode.
The filler function is also given a flags argument and the filesystem can
set FUSE_FILL_DIR_PLUS if all the attributes in "stat" are valid.
|
| |
|
|
|
|
|
|
| |
Distribute ulockmgr separately. It is not needed for the building of
libfuse, only fusexmp_fh. Check ulockmgr library in ./configure and if not
disable remote-lock suport in fusexmp_fh.
|
|
|
|
|
|
| |
Allow 2.X and 3.X to coexist. Includes are now stored under
/usr/include/fuse3 and library is named libfuse3.*. Invoke pkg-config with
"fuse3" as the first argument to build with version 3 of the library.
|
|
|
|
| |
add AC_SYS_LARGEFILE to your configure.ac instead.
|
| |
|
| |
|
|
|
|
|
|
| |
- modified all examples to be included in doxygen
- modified the API documentation to have more details
- added the 490px_FUSE_structure.svg.png (c) wikipedia
|
| |
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Reported by Luciano Dalle Ore
|
|
|
|
|
| |
If the filesystem sets this flag then ->utimens() will receive UTIME_OMIT and
UTIME_NOW values as specified in utimensat(2).
|
|
|
|
|
|
| |
fusexmp uses utimens and takes that function for granted. It is part of
POSIX exended API set 2 and some systems do not have it yet. Attached
patch checks for utimens availability and returns ENOSYS if unavailable.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Make xmp_utimens of examples "fusexmp" and "fusexmp_fh" not follow
symlinks as other layers do that already.
|
|
|
|
|
|
|
| |
Remove -lrt -ldl from fuse.pc for dynamic linking since libfuse.so is
already linked with these libraries.
Reported by: Nikolaus Rath
|