Age | Commit message (Collapse) | Author |
|
Some parameters were undocumented, and @file does not mean to expand current file name.
|
|
|
|
|
|
* Add fallocate to list of operations that may omit path.
* earlier versions is 10+ years old.
Document is not obvious how old it is. Add it.
* Update manpage link
|
|
copy_file_range was first implemented with copy-based emulation in
glibc 2.27, but the emulation was subsequently removed again because
correct emulation depends on why the application attempted to make a
copy. Therefore, file systems cannot rely on low-level userspace
performing emulation.
|
|
They are illegal in C89/90.
|
|
|
|
Define FUSE_USE_VERSION < 35 to get old ioctl prototype
with int commands; define FUSE_USE_VERSION >= 35 to get
new ioctl prototype with unsigned int commands.
Fixes #463.
|
|
|
|
See issue #389 for some related discussions.
|
|
Instead of the Posix ioctl(2) command, Linux uses its own variant of ioctl()
in which the commands are requested as "unsigned long" and truncated to
32 bits by the fuse kernel module. Transmitting the commands to user space
file systems as "unsigned int" is a workaround for processing ioctl()
commands which do not fit into a signed int.
|
|
Fixes: #373
|
|
Add support for the relatively new copy_file_range() syscall. Backend
filesystems can now implement an efficient way of cloning/duplicating
data ranges within files. See 'man 2 copy_file_range' for more details.
|
|
The unprivileged option allows to run the FUSE file system process
without privileges by dropping capabilities and preventing them from
being re-acquired via setuid / fscaps etc. To accomplish this,
mount.fuse sets up the `/dev/fuse` file descriptor and mount itself
and passes the file descriptor via the `/dev/fd/%u` mountpoint syntax
to the FUSE file system.
|
|
Return different error codes from fuse_main()
|
|
|
|
the filehandle from opendir is passed to releasedir - there is no
closedir function in fuse_operations
|
|
Callers do (and should) use ;.
|
|
Fix spelling errors
|
|
|
|
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.
|
|
|
|
|
|
This function shouldn't be called when using a newer fuse
version, so we should not define it in that case.
|
|
|
|
|
|
In particular, don't call it "user_data" in one place and
"private_data" elsewhere.
Changing the name of the variable in the prototype should not affect
backwards compatibility.
Fixes: #155.
|
|
|
|
|
|
documentation
|
|
Fixes #116.
|
|
|
|
|
|
This turns issue #62 from a bug into an enhancement :-).
|
|
|
|
|
|
Fixes: #81.
|
|
|
|
|
|
This should help avoid people to accidentally put options
into argv[0].
Fixes #100.
|
|
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.
|
|
|
|
Since FUSE 3 is breaking backwards compatibility, this really does
not matter.
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
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.
|