Age | Commit message (Collapse) | Author | Lines |
|
-EOPNOTSUPP was in early RFC kernel patches, but merged version
does not have this handler anymore.
Closes: https://github.com/libfuse/libfuse/issues/1283
Signed-off-by: Bernd Schubert <bschubert@ddn.com>
|
|
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.29.2 to 3.29.3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/181d5eefc20863364f96762470ba6f862bdef56b...d6bbdef45e766d081b84a2def353b0055f728d3e)
---
updated-dependencies:
- dependency-name: github/codeql-action
dependency-version: 3.29.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
|
|
These nullptr initializations don't make sense - methods that
are not explicitly set are not implemented. I thought that C++20
would eventually avoid the nullptr, but looks like compilers
still give warnings - avoid them with a pragma.
Signed-off-by: Bernd Schubert <bschubert@ddn.com>
|
|
Remove redundant mutex lock acquisition in the truncate() method to
prevent deadlock. The issue occurs when memfs_setattr() already holds
the mutex lock and then calls truncate(), which attempts to acquire
the same lock again.
Signed-off-by: Long Li <leo.lilong@huawei.com>
|
|
This is a long standing issue, a system could have unmounted
/path/to/mnt and then fuse-client/kernel would send FUSE_DESTROY,
which would then again try a umount.
Given that FUSE_DESTROY is async, that umount might arrive
any time later and might possibly unmount a wrong mount point.
A warning as in issue #1286 is just minor to that.
Code wise this uses atomics to free the char *, as FUSE_DESTROY
might race with a signal and a double free might be possible
without proctection. A lock might run into the same issue,
if the signal would arrive at the wrong time a double lock
would be possible.
Additionally, fuse_session_mount() is updated, to first
duplicatate the pointer and to then do the kernel mount -
reverting the kernel mount in case of strdup() failure
is much harder.
Closes: https://github.com/libfuse/libfuse/issues/1286
Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
|
|
According to https://man.freebsd.org/cgi/man.cgi?close_range(2)
we just need to remove the linux include.
Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
|
|
This fixes commit 82bcd818
That commit had removed HAVE_LINUX_CLOSE_RANGE in meson generation,
but didn't remove the usage in fusermount.c - fusermount was then
not using the close_range syscall.
Closes: https://github.com/libfuse/libfuse/issues/1284
Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
|
|
This commit adds libfuse support for FUSE_STATX requests on
linux distributions.
Currently, statx is only supported on linux. To make the interface a
ergonomic as possible (eg using native 'struct statx' vs 'struct
fuse_statx'), this implementation gates the 'struct statx' changes
by #ifdef linux.
Signed-off-by: Joanne Koong <joannelkoong@gmail.com>
|
|
This only effects example/{passthrough_hp.cc,memfs_ll.cc} and is mainly
to avoid these warnings
../example/memfs_ll.cc:1100:1: warning: missing field 'statx' initializer
[-Wmissing-designated-field-initializers]
Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
|
|
FreeBSD 14 introduced a new system call, fspacectl().
Currently, it supports one operation mode, SPACECTL_DEALLOC,
which is functionally equivalent to Linux fallocate() with
FALLOC_FL_KEEP_SIZE|FALLOC_FL_PUNCH_HOLE flags.
fspacectl() calls with SPACECTL_DEALLOC is supported on FUSE
filesystems via FUSE_FALLOCATE with the aforementioned flags.
Signed-off-by: CismonX <admin@cismon.net>
|
|
Add header guards, include system headers as needed, and declare
helper functions as inline.
This ensures that the helper header could be properly included.
Signed-off-by: CismonX <admin@cismon.net>
|
|
Move fallocate implementation to passthrough_helpers.h, so that
it could be reused by multiple passthrough examples.
Signed-off-by: CismonX <admin@cismon.net>
|
|
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.29.0 to 3.29.2.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/ce28f5bb42b7a9f2c824e633a3f6ee835bab6858...181d5eefc20863364f96762470ba6f862bdef56b)
---
updated-dependencies:
- dependency-name: github/codeql-action
dependency-version: 3.29.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
|
|
Signed-off-by: izxl007 <zeng.zheng@zte.com.cn>
|
|
Signed-off-by: Gleb Popov <6yearold@gmail.com>
|
|
Signed-off-by: Gleb Popov <6yearold@gmail.com>
|
|
Draft version of a yet simple runner that just build libfuse under
FreeBSD and show the compile log.
|
|
Signed-off-by: Gleb Popov <6yearold@gmail.com>
|
|
Signed-off-by: Gleb Popov <6yearold@gmail.com>
|
|
Signed-off-by: Gleb Popov <6yearold@gmail.com>
|
|
Signed-off-by: Gleb Popov <6yearold@gmail.com>
|
|
Signed-off-by: Gleb Popov <6yearold@gmail.com>
|
|
Signed-off-by: Gleb Popov <6yearold@gmail.com>
|
|
Signed-off-by: Gleb Popov <6yearold@gmail.com>
|
|
Add comment noting that the uint64_t offset in fuse_lseek_in is derived
from kernel loff_t and should be treated as signed for negative offsets.
Signed-off-by: izxl007 <zeng.zheng@zte.com.cn>
|
|
Signed-off-by: izxl007 <zeng.zheng@zte.com.cn>
|
|
This patch modifies the notify_inval_entry.c example so that it includes
an extra option to use fuse_lowlevel_notify_increment_epoch(). The test
test_notify_inval_entry() was also modified to test this extra option.
Signed-off-by: Luis Henriques <luis@igalia.com>
|
|
This patch adds support for the FUSE INC_EPOCH notify. This new operation
simply increments the FUSE connection epoch value, allowing to invalidate
all the dentries next time they are revalidated.
Signed-off-by: Luis Henriques <luis@igalia.com>
|
|
Do not attempt to update /run/mount/utab if it doesn't exist.
Note: if this path ever changes, utab updates will break.
Fixes the following error when mounting iPhone using ifuse:
ifuse /mnt --container com.httpstorm.httpstorm
mount: mounting ifuse on /mnt failed: Invalid argument
On OpenWRT by default mount-utils is not installed and utab
does not exist. /bin/mount is a symlink to /bin/busybox and
does not support updating of utab. If mount-utils is installed:
/run/mount/ exists, but does not contain utab.
The mount-utils instance is under /usr/bin/mount, so a hard-coded
call to /bin/mount will still fail. Using /usr/bin/mount succeeds
but does not create utab.
[1] https://github.com/libfuse/libfuse/pull/1247
Signed-off-by: Georgi Valkov <gvalkov@gmail.com>
|
|
We need to write an uint64_t to eventfd.
Signed-off-by: Bernd Schubert <bschubert@ddn.com>
|
|
Signed-off-by: Bernd Schubert <bschubert@ddn.com>
|
|
Not ideal for git history, but the different
formatting within the project is really
disturbing.
Signed-off-by: Bernd Schubert <bschubert@ddn.com>
|
|
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.19 to 3.29.0.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/fca7ace96b7d713c7035871441bd52efbe39e27e...ce28f5bb42b7a9f2c824e633a3f6ee835bab6858)
---
updated-dependencies:
- dependency-name: github/codeql-action
dependency-version: 3.29.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
|
|
When working with patches, git shows them as uncommitted changes.
Ignore *.patch to keep the list of changes tidy.
Signed-off-by: Georgi Valkov <gvalkov@gmail.com>
|
|
The io_uring options are currently shown in both fuse_cmdline_help()
and fuse_lowlevel_help(), which creates unnecessary duplication. Since
io_uring is a low-level I/O feature, it makes more sense to only show
these options in fuse_lowlevel_help().
This change:
- Removes io_uring options from fuse_cmdline_help()
- Keeps them in fuse_lowlevel_help() where they belong
- Removes the FIXME comment that is no longer needed
This is purely a documentation improvement and does not affect any
functionality. Users will still see all available options when using
--help, just organized in a more logical way.
Signed-off-by: izxl007 <zeng.zheng@zte.com.cn>
|
|
The sigterm test triggers debug output like
dev unique: 6, opcode: STATFS (17), nodeid: 1, insize: 40, pid: 1808
unique: 6, success, outsize: 96
dev unique: 8, opcode: GETATTR (3), nodeid: 1, insize: 56, pid: 1808
exit_handler called with sig 15
fuse: session exited, terminating workers
unique: 8, error: -2 (No such file or directory), outsize: 16
Which then triggers test failures, because the test was acting
on the word 'error'.
Signed-off-by: Bernd Schubert <bschubert@ddn.com>
|
|
BT_STACK_SZ and backtrace_buffer are not used when
HAVE_BACKTRACE is undefined. Wrap them in #ifdef
to avoid a build warning:
../lib/fuse_signals.c:31:14: warning: 'backtrace_buffer' defined but not used [-Wunused-variable]
31 | static void *backtrace_buffer[BT_STACK_SZ];
| ^~~~~~~~~~~~~~~~
Signed-off-by: Georgi Valkov <gvalkov@gmail.com>
|
|
.DS_Store files are created all over the place on macOS
Signed-off-by: Georgi Valkov <gvalkov@gmail.com>
|
|
Signed-off-by: Gleb Popov <6yearold@gmail.com>
|
|
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.18 to 3.28.19.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/ff0a06e83cb2de871e5a09832bc6a81e7276941f...fca7ace96b7d713c7035871441bd52efbe39e27e)
---
updated-dependencies:
- dependency-name: github/codeql-action
dependency-version: 3.28.19
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
|
|
This patch updates how to use the io_uring and io_uring_q_depth mount
options. There are two reasons for this:
1. It is recommended for end-users to use a format like “-o io_uring"
(with a space) in README.fuse-io-uring. This is because, in the
passthrough_hp example, cxxopts does not support the "-oio_uring"
format (without a space), and using it would result in a syntax error.
2. Remove redundant "--uring" and "--uring-q-depth=" from
passthrough_hp example.
Signed-off-by: izxl007 <zeng.zheng@zte.com.cn>
|
|
Signed-off-by: izxl007 <zeng.zheng@zte.com.cn>
|
|
Function fuse_set_thread_name() assumes that pthread_t is an unsigned long
and fails to compile in musl libc with the following:
../lib/util.c: In function 'fuse_set_thread_name':
../lib/util.c:48:28: error: passing argument 1 of 'pthread_setname_np' makes \
pointer from integer without a cast [-Wint-conversion]
Fix fuse_set_thread_name() by dropping the 'tid' parameter, as it is always
set to pthread_self().
Signed-off-by: Luis Henriques <luis@igalia.com>
|
|
fuse_apply_conn_info_opts() was applying to 'want_ext',
which would cause conflicts with 'want' if the application
applied its own flags to 'conn->want'.
Solution is:
- to move fuse_{set,unset,get}_feature_flag and
convert_to_conn_want_ext() to fuse_lowlevel.c and
to define them as part of the public API, although
convert_to_conn_want_ext() should not be used - it is
currently needed to be a public function due as it needs
to be defined for the tests.
Related to https://github.com/libfuse/libfuse/issues/1171 and
https://github.com/libfuse/libfuse/pull/1172.
Closes: https://github.com/libfuse/libfuse/issues/1171
Signed-off-by: Bernd Schubert <bschubert@ddn.com>
|
|
there are too many issues with conn->want and conn->want_ext
conversion, for now just log a warning, but setting both
flags is now not fatal anymore.
Signed-off-by: Bernd Schubert <bschubert@ddn.com>
|
|
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.17 to 3.28.18.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/60168efe1c415ce0f5521ea06d5c2062adbeed1b...ff0a06e83cb2de871e5a09832bc6a81e7276941f)
---
updated-dependencies:
- dependency-name: github/codeql-action
dependency-version: 3.28.18
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
|
|
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.16 to 3.28.17.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/28deaeda66b76a05916b6923827895f2b14ab387...60168efe1c415ce0f5521ea06d5c2062adbeed1b)
---
updated-dependencies:
- dependency-name: github/codeql-action
dependency-version: 3.28.17
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
|
|
This adds the libfuse changes needed to support request timeouts.
A timeout may be set by the server in its init call. If a request is not
completed by the timeout, the connection will be aborted by the kernel.
Signed-off-by: Joanne Koong <joannelkoong@gmail.com>
|
|
Sync include/fuse_kernel.h with the most up to date fuse
uapi headers in the kernel.
Signed-off-by: Joanne Koong <joannelkoong@gmail.com>
|
|
Signed-off-by: izxl007 <zeng.zheng@zte.com.cn>
|