434 Commits

Author SHA1 Message Date
Junichi Uekawa 09f054744a Define FUSE_USE_VERSION in Doxygen. (#608)
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-19 09:32:14 +01:00
Junichi Uekawa 01d8ebe436 Fix doxygen warnings. (#600)
Some parameters were undocumented, and @file does not mean to expand current file name.
2021-05-07 10:43:30 +01:00
Manuel Jacob a7ae35d4b5 Add missing exceptions to fuse_reply_err() documentation. (#597)
Co-authored-by: Manuel Jacob <test>
2021-04-23 08:31:37 +01:00
Tobias Nießen b982a8d45d Fix typo in fuse_lowlevel.h (#593) 2021-03-30 13:37:30 +01:00
Andrew Gaul 72ff9609ac Fix typos (#592) 2021-03-25 08:40:27 +00:00
Feverfew 916322d931 Fix typo (#578) 2021-01-10 11:50:28 +00:00
Nikolaus Rath 9c765877d8 Released 3.10.0 2020-10-09 10:47:25 +01:00
ferivoz fdc4d0f549 Fix typo "retuned" -> "returned" (#553) 2020-10-03 13:14:00 +01:00
Etienne Dublé e0ffce59eb Allow caching symlinks in kernel page cache. (#551)
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-09-20 19:08:15 +01:00
asafkahlon 968b7fd64f Define fuse_session_loop_mt as a macro on uclibc and MacOS (#532)
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-09 12:37:26 +01:00
Junichi Uekawa ea8ff6361d Doc fixes (#537)
* 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-08-09 12:35:28 +01:00
Florian Weimer 85120e097d Update comment for the copy_file_range operation (#497)
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-31 13:38:41 -05:00
zsugabubus 648d32e1d4 Remove trailing comma in enums (#494)
They are illegal in C89/90.
2020-01-27 16:13:11 +00:00
Changli Gao a2df6f420f Style: Fix an indention in comments (#480) 2019-12-31 10:01:26 +00:00
Nikolaus Rath da21668894 Bump FUSE_MINOR_VERSION
This was forgotten over several releases.
2019-12-31 09:59:43 +00:00
Bill Zissimopoulos f340eb3d5d Make ioctl prototype conditional on FUSE_USE_VERSION. (#482)
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-12-31 09:58:57 +00:00
Albert Chen f17110b721 Added support for FUSE_EXPLICIT_INVAL_DATA to enable (#474) 2019-11-27 09:36:30 +00:00
Yuri Per 93b44b4db3 Implement lseek operation (#457) 2019-11-03 09:44:31 +00:00
Stefan Hajnoczi 846ec9bdf3 log: move fuse_log() to the public header file
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-10 14:25:15 +01:00
Stefan Hajnoczi 56345a98c5 Introduce callback for logging
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-09-04 15:59:18 +01:00
Nikolaus Rath b4f65da2ec Shorten comment. 2019-08-23 20:58:54 +01:00
Nikolaus Rath 8505b62d15 Improve description of READDIRPLUS_AUTO. 2019-08-23 20:58:23 +01:00
AsumFace 085aaabd3c Clarify bitfield padding issue (#445)
* Clarify bitfield padding issue

* Add a more elaborate note to fuse_file_info
2019-08-23 20:58:06 +01:00
Kirill Smelkov ba5abf652c Sync fuse_kernel.h with Linux 5.2 (#433) 2019-07-09 13:54:09 -07:00
Alan Somers f6691d0a20 Remove incorrect comment about fuse_entry_param.generation (#420)
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-05-24 08:54:42 +01:00
Chad Austin 6439231f9b Add documentation for opting out of opendir and releasedir (#391) 2019-04-16 19:44:59 +01:00
Nikolaus Rath 1552b467fc Add support for in-kernel readdir caching.
Fixes: #394.
2019-04-06 18:34:57 +01:00
Nikolaus Rath 4ae58ffd9b Synchronize fuse_kernel.h with current kernel master. 2019-04-06 17:57:44 +01:00
Nikolaus Rath 87b907808d Delete FUSE_FSYNC_FDATASYNC
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-06 17:56:14 +01:00
Alan Somers 1a6c9811e5 Various documentation improvements
See issue #389 for some related discussions.
2019-04-06 17:37:01 +01:00
Jean-Pierre André a1bff7dbe3 Defined the (*ioctl)() commands as unsigned int (#381)
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-11 17:35:23 +00:00
Alan Somers 064fe96561 Improve documentation for the flush method (#378)
Fixes: #373
2019-03-10 19:35:30 +00:00
Chad Austin fd0ed8290e Improve readdir() and file handle documentation
Fixes: #333
2019-03-09 11:02:24 +00:00
Alan Somers 078c623703 Fix the changelog entry for protocol version 7.12 (#374)
Commit 24b35c3d97 had a simple mistake in
its changelog entry.
2019-03-09 09:50:22 +00:00
Alan Somers 1b7d2b8862 Document fuse_fsync_in.fsync_flags and remove magic numbers (#375) 2019-03-08 21:24:50 +00:00
Nikolaus Rath 1a7399a216 Clarify documentation of fuse_lowlevel_inval_inode
Fixes: #341.
2019-01-21 20:10:10 +00:00
Niels de Vos fe4f9428fc libfuse: add copy_file_range() support
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-19 12:33:56 +00:00
Niels de Vos 4c699e7deb Update kernel API headers
Taken from Linux kernel commit 3b7008b226f3.
2018-11-19 12:33:56 +00:00
Nikolaus Rath b7ccb0d4c9 Document when fuse_lowlevel_notify_* functions may block. 2018-11-06 18:50:07 +00:00
Mattias Nissler da7c9b228a Add unprivileged option in mount.fuse3
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-10-09 20:36:22 +01:00
Nikolaus Rath 40e452e405 Clarify what qualifies as a "related operation" for notify_inval_entry. 2018-09-20 09:07:45 +01:00
Nikolaus Rath 7b0075c06f Don't enable adaptive readdirplus unless fs has readdir() handler. 2018-09-20 09:07:45 +01:00
Oded Arbel 8198eb4b6f return different non-zero error codes (#290)
Return different error codes from fuse_main()
2018-08-29 17:20:56 +01:00
Martin Blanchard 52469901fc Make meson build scripts subprojects friendly
Multiple meson build scripts improvements including:
 * Bump meson requirement to 0.40.1 (0.40 already required)
 * Declare a dependency object for main library
 * Stop using add_global_arguments()
 * Various minor style fixes
2018-08-25 20:17:39 +01:00
Nikolaus Rath db165f59f2 Document that access() is also called on chdir().
Source: Miklos Szeredi on fuse-devel, Wednesday, 4 July 2018 15:29.
2018-07-04 19:52:32 +01:00
William Woodruff 3dd29049f8 fuse.h: fix typo (currenlty -> currently) 2018-07-02 17:18:58 +01:00
Carl Edquist cece24786e fix documentation for opendir in fuse_operations
the filehandle from opendir is passed to releasedir - there is no
closedir function in fuse_operations
2018-05-24 16:01:27 +01:00
Tomohiro Kusumi 7638bbba7b Drop redundant ; from FUSE_REGISTER_MODULE()
Callers do (and should) use ;.
2018-04-13 10:14:46 -07:00
Josh Soref 8157b4d9b9 Spelling (#223)
Fix spelling errors
2017-11-27 10:23:20 +00:00
Nikolaus Rath 30ead3a5cf Dropped support for building with autotools
It's just too much pain to keep it working.
2017-08-24 20:50:44 +02:00