aboutsummaryrefslogtreecommitdiffstats
path: root/include
AgeCommit message (Collapse)AuthorLines
2022-09-04API update for fuse_loop_config additionsBernd Schubert-20/+69
struct fuse_loop_config was passed as a plain struct, without any version identifer. This had two implications 1) Any addition of new parameters required a FUSE_SYMVER for fuse_session_loop_mt() and fuse_loop_mt() as otherwise a read beyond end-of previous struct size might have happened. 2) Filesystems also might have been recompiled and the developer might not have noticed the struct extensions and unexpected for the developer (or people recomliling the code) uninitialized parameters would have been passed. Code is updated to have struct fuse_loop_config as an opaque/private data type for file systems that want version 312 (FUSE_MAKE_VERSION(3, 12)). The deprecated fuse_loop_config_v1 is visible, but should not be used outside of internal conversion functions File systems that want version >= 32 < 312 get the previous struct (through ifdefs) and the #define of fuse_loop_mt and fuse_session_loop_mt ensures that these recompiled file systems call into the previous API, which then converts the struct. This is similar to existing compiled applications when just libfuse updated, but binaries it is solved with the FUSE_SYMVER ABI compact declarations. Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2022-05-02Released 3.11.0Nikolaus Rath-1/+1
2022-04-20patch: document ignored fill parameter of readdirAndré Schröder-0/+7
2022-04-17Add missing kernel flags up to 1ULL << 33Bernd Schubert-0/+8
Just a further sync with the in-kernel flags.
2022-04-08Modify structures in libfuse to handle flags beyond 32 bits.Dharmendra Singh-2/+6
In fuse kernel, 'commit 53db28933e95 ("fuse: extend init flags")' made the changes to handle flags going beyond 32 bits but i think changes were not done in libfuse to handle the same. This patch prepares the ground in libfuse for incoming FUSE kernel patches (Atomic open + lookup) where flags went beyond 32 bits. It makes struct same as in fuse kernel resulting in name change of few fields.
2022-01-03Add no_rofd_flush mount optionAmir Goldstein-0/+8
To disable flush for read-only fd. Signed-off-by: Amir Goldstein <amir73il@gmail.com>
2022-01-03Add support for FOPEN_NOFLUSH flagAmir Goldstein-1/+7
Allow requesting from kernel to avoid flush on close at file open time. If kernel does not support FOPEN_NOFLUSH flag, the request will be ignored. For passthrough_hp example, request to avoid flush on close when writeback cache is disabled and file is opened O_RDONLY. Signed-off-by: Amir Goldstein <amir73il@gmail.com>
2021-12-12Document possible NULL paths when directories are removed (#633)Maximilian Heinzler-0/+6
When directories with open handles are removed, the releasedir and fsyncdir operations might be called with a NULL path. That is because there is no hiding behavior like for regular files and the nodes get removed immediately.
2021-05-19Define FUSE_USE_VERSION in Doxygen. (#608)Junichi Uekawa-5/+5
We currently do not pass anything in PREDEFINED and that means FUSE_USE_VERSION is undefined. Add that definition so that Doxygen built-in C pre-processor can use FUSE_USE_VERSION value to find the correct comment to parse.
2021-05-07Fix doxygen warnings. (#600)Junichi Uekawa-14/+17
Some parameters were undocumented, and @file does not mean to expand current file name.
2021-04-23Add missing exceptions to fuse_reply_err() documentation. (#597)Manuel Jacob-1/+1
Co-authored-by: Manuel Jacob <test>
2021-03-30Fix typo in fuse_lowlevel.h (#593)Tobias Nießen-1/+1
2021-03-25Fix typos (#592)Andrew Gaul-5/+5
2021-01-10Fix typo (#578)Feverfew-1/+1
2020-10-09Released 3.10.0Nikolaus Rath-2/+2
2020-10-03Fix typo "retuned" -> "returned" (#553)ferivoz-1/+1
2020-09-20Allow caching symlinks in kernel page cache. (#551)Etienne Dublé-0/+13
This commit defines a new capability called `FUSE_CAP_CACHE_SYMLINKS`. It is off by default but you can now enable it by setting this flag in in the `want` field of the `fuse_conn_info` structure. When enabled, the kernel will save symlinks in its page cache, by making use of the feature introduced in kernel 4.20: https://github.com/torvalds/linux/commit/5571f1e65486be025f73fa6aa30fb03725d362a2
2020-08-09Define fuse_session_loop_mt as a macro on uclibc and MacOS (#532)asafkahlon-0/+5
On uclibc and MacOS we don't use versioned symbols. Hence, there's no definition for fuse_session_loop_mt on those cases and the linker won't be able to resolve calls to fuse_session_loop_mt() Signed-off-by: Asaf Kahlon <asafka7@gmail.com>
2020-08-09Doc fixes (#537)Junichi Uekawa-2/+2
* 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
2020-01-31Update comment for the copy_file_range operation (#497)Florian Weimer-3/+4
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.
2020-01-27Remove trailing comma in enums (#494)zsugabubus-6/+6
They are illegal in C89/90.
2019-12-31Style: Fix an indention in comments (#480)Changli Gao-2/+2
2019-12-31Bump FUSE_MINOR_VERSIONNikolaus Rath-1/+1
This was forgotten over several releases.
2019-12-31Make ioctl prototype conditional on FUSE_USE_VERSION. (#482)Bill Zissimopoulos-1/+18
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.
2019-11-27Added support for FUSE_EXPLICIT_INVAL_DATA to enable (#474)Albert Chen-0/+23
2019-11-03Implement lseek operation (#457)Yuri Per-0/+40
2019-09-10log: move fuse_log() to the public header fileStefan Hajnoczi-0/+8
Applications may wish to call fuse_log() for unified logging. This way they don't need to define their own wrappers to invoke the log message handler function installed by fuse_set_log_func(). Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2019-09-04Introduce callback for loggingStefan Hajnoczi-1/+76
Introduce an API for custom log handler functions. This allows libfuse applications to send messages to syslog(3) or other logging systems. See include/fuse_log.h for details. Convert libfuse from fprintf(stderr, ...) to log_fuse(level, ...). Most messages are error messages with FUSE_LOG_ERR log level. There are also some debug messages which now use the FUSE_LOG_DEBUG log level. Note that lib/mount_util.c is used by both libfuse and fusermount3. Since fusermount3 does not link against libfuse, we cannot call fuse_log() from lib/mount_util.c. This file will continue to use fprintf(stderr, ...) until someone figures out how to split it up. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2019-08-23Shorten comment.Nikolaus Rath-5/+0
2019-08-23Improve description of READDIRPLUS_AUTO.Nikolaus Rath-0/+9
2019-08-23Clarify bitfield padding issue (#445)AsumFace-2/+8
* Clarify bitfield padding issue * Add a more elaborate note to fuse_file_info
2019-07-09Sync fuse_kernel.h with Linux 5.2 (#433)Kirill Smelkov-1/+24
2019-05-24Remove incorrect comment about fuse_entry_param.generation (#420)Alan Somers-3/+0
A comment said that fuse_entry_param.generation must be non-zero. However, I can't find anything in the kernel that requires that, and real-world file systems don't seem to follow that advice, either.
2019-04-16Add documentation for opting out of opendir and releasedir (#391)Chad Austin-0/+19
2019-04-06Add support for in-kernel readdir caching.Nikolaus Rath-5/+13
Fixes: #394.
2019-04-06Synchronize fuse_kernel.h with current kernel master.Nikolaus Rath-2/+18
2019-04-06Delete FUSE_FSYNC_FDATASYNCNikolaus Rath-7/+0
This constant is not defined in the kernel, so it will be lost when fuse_kernel.h is not synchronized. Instead, the kernel just passes a flag value of "1", so for now we also use a literal in userspace.
2019-04-06Various documentation improvementsAlan Somers-18/+28
See issue #389 for some related discussions.
2019-03-11Defined the (*ioctl)() commands as unsigned int (#381)Jean-Pierre André-5/+12
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.
2019-03-10Improve documentation for the flush method (#378)Alan Somers-15/+26
Fixes: #373
2019-03-09Improve readdir() and file handle documentationChad Austin-11/+22
Fixes: #333
2019-03-09Fix the changelog entry for protocol version 7.12 (#374)Alan Somers-1/+1
Commit 24b35c3d97ffdbf0a1f8e8b4e94ed892343603a6 had a simple mistake in its changelog entry.
2019-03-08Document fuse_fsync_in.fsync_flags and remove magic numbers (#375)Alan Somers-0/+7
2019-01-21Clarify documentation of fuse_lowlevel_inval_inodeNikolaus Rath-8/+8
Fixes: #341.
2018-11-19libfuse: add copy_file_range() supportNiels de Vos-45/+117
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.
2018-11-19Update kernel API headersNiels de Vos-1/+7
Taken from Linux kernel commit 3b7008b226f3.
2018-11-06Document when `fuse_lowlevel_notify_*` functions may block.Nikolaus Rath-0/+13
2018-10-09Add unprivileged option in `mount.fuse3`Mattias Nissler-0/+10
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.
2018-09-20Clarify what qualifies as a "related operation" for notify_inval_entry.Nikolaus Rath-6/+13
2018-09-20Don't enable adaptive readdirplus unless fs has readdir() handler.Nikolaus Rath-4/+15