aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorLines
2025-03-19Fix a comment typo "passed to the filesystem.n"Bernd Schubert-1/+1
Closes: https://github.com/libfuse/libfuse/issues/1168 Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
2025-03-19Switch .dir-locals.el to linux kernel styleBernd Schubert-45/+62
We have a non ideal configuration for different editors. The project uses linux style - emacs config should also correspond to that. Taken from https://www.kernel.org/doc/html/v6.13/process/coding-style.html#you-ve-made-a-mess-of-it with the attempt to update for c++. Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
2025-03-18fusermount: prevent stdio FDs from being reusedBernd Schubert-28/+54
Redirect stdin/stdout/stderr to /dev/null to prevent newly opened file descriptors from reusing these low numbers (0,1,2) and potential issues with that. Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2025-03-14fuse_lowlevel: Simplify se->buf_reallocableBernd Schubert-12/+18
se->buf_reallocable is true when reading /dev/fuse is handled from internal functions - we can set the variable in fuse_session_receive_buf_internal(). With that we also don't need to have it an _Atomic variable anymore. In _fuse_session_receive_buf() we can use "bool internal" to check if the buffer can be re-allocated. Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2025-03-14fuse_session_receive_buf: Fix the pipe buf sizeBernd Schubert-3/+13
This fixes dynamic buffer allocation in commit 0e0f43b79b9b ("Reallocate fuse_session buffer...") I noticed that when I increased the default fuse buf size as possible in recent kernels. Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2025-03-14fuse_common.h: Convert back FUSE_CAP_ from enum to definesBernd Schubert-322/+315
Some applications use that for detection of features between distributions/libfuse version. Closes: https://github.com/libfuse/libfuse/issues/1163 Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2025-03-13Add PanFS to whitelistjnr0006-0/+1
Added PanFSto whitelist. This should allow us to mount gocryptfs onto the parallel filesystem. Signed-off-by: Jacob Riley <jnr0006@uah.edu>
2025-03-11doc: Add new README about notification operationsLuis Henriques-0/+37
The main goal of this new file is to warn about the deadlocking risks when using the out-of-band notify operations while replying to other requests. Signed-off-by: Luis Henriques <luis@igalia.com>
2025-03-11build(deps): bump github/codeql-action from 3.28.9 to 3.28.11dependabot[bot]-2/+2
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.9 to 3.28.11. - [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/9e8d0789d4a0fa9ceb6b1738f7e269594bdd67f0...6bb031afdd8eb862ea3fc1848194185e076637e5) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
2025-03-11checkpatch: 100 chars per lineBernd Schubert-1/+1
Accept up to 100 chars per line to silence more github action updates. Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
2025-03-11checkpatch: More ignores: ENOSYS,FROM_SIGN_OFF_MISMATCH,QUOTED_COMMIT_IDBernd Schubert-1/+1
ENOSYS is right for fuse, automatic github action updates persistently run into sign-off-mismatch and commit-id quoting persistently conflicts with long line warnings. Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
2025-02-20fuse_log: simplify default log functionVassili Tchersky-42/+5
fuse_log_level is guaranteed to be the same as libc as syslog is a network protocol and levels are numerical constants enforced in RFCs. Syslog is originally BSD-only and was imported by glibc and standardised in SUS and POSIX. Use vsyslog rather than formatting a new intermediate string. Signed-off-by: Vassili Tchersky <vt+git@vbc.su>
2025-02-19mount: fix closing stdout/err and error logsVassili Tchersky-10/+11
Don't spawn a setuid children with FD 1&2 closed. Check status and not errno after posix_spawn(p). Add comments to fix later error checking, as posix_spawn(p) returns non-zero status only if clone/vfork/rfork fails. If only setup (open, dup2) or execve fails, the forked process exit with 127 but posix_spawn returns zero. Signed-off-by: Vassili Tchersky <vt+git@vbc.su>
2025-02-19Update meson.build for master branch to 3.18Bernd Schubert-1/+1
Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
2025-02-18github checkpatch test: Fix for non pull requestsBernd Schubert-5/+5
It should only run for pull requests. Indentation for the branch to run on was also not right. Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2025-02-18github ci tests: Update the stable branch name to include fuse-Bernd Schubert-9/+15
The branch is actually called fuse-3.17.x Also disable checkpatch for branches except master, as it is to do basic checks, while stable branches do not need that check, assuming cherry-pick happens from master. Issue with it is that persistently complains about dependabot changes. Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
2025-02-18Fix a typo in test/ci-build.sh (ct vs cat)Bernd Schubert-1/+1
Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2025-02-18Avoid nested function declarations in helper functionsBernd Schubert-62/+28
libfuse-3.17 introduced several functions that should only be called via inlined helper functions, never directly. To enforce this, these functions were declared within the inlined functions. However, this triggers the compiler warning "-Werror=nested-externs". While this warning is valid, the nested declarations were intentional to prevent direct usage of these functions. Rather than suppressing the warning with pragmas, move these function declarations outside the helper functions while maintaining the intended access restrictions through other means. Closes: https://github.com/libfuse/libfuse/issues/1134 Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2025-02-18mount_bsd: Remove unused headersVassili Tchersky-4/+0
Removed: - <sys/user.h>: used to be for kinfo_proc, long gone from the code - <paths.h>: used to be for _PATH_DEV and _PATH_DEVNULL, long gone - <limits.h>: used to be for _POSIX2_LINE_MAX, long gone - <sys/stat.h>: used to be for fstat/stat, long gone Signed-off-by: Vassili Tchersky <vt+git@vbcy.org>
2025-02-18mount_bsd: Show errors when syscalls failedVassili Tchersky-3/+7
Log on unmount() and close() failure Signed-off-by: Vassili Tchersky <vt+git@vbcy.org>
2025-02-18mount_bsd: Proper exit callsVassili Tchersky-4/+4
Use _exit() instead of exit() inside children Signed-off-by: Vassili Tchersky <vt+git@vbcy.org>
2025-02-18FreeBSD: Remove useless optionsVassili Tchersky-31/+6
These options never had any effect. See https://svnweb.freebsd.org/base?view=revision&revision=347544 Signed-off-by: Vassili Tchersky <vt+git@vbcy.org>
2025-02-18mount_bsd: Fix usage of libfuse_strtolVassili Tchersky-3/+4
The check on fd < 0 was recently removed. However, this check is important as the content of FUSE_DEV_FD is passed as-is to mount_fusefs, and a string beginning by '-' is treated as an option. Additionally, add a proper include and type. Signed-off-by: Vassili Tchersky <vt+git@vbcy.org>
2025-02-18tests: Re-enable mknod and mkfifo tests on FreeBSDVassili Tchersky-6/+0
Signed-off-by: Vassili Tchersky <vt+git@vbcy.org>
2025-02-18tests: Disable tests with TMP_FILE on FreeBSDVassili Tchersky-0/+4
Not supported yet on this platform. See https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=283179 Signed-off-by: Vassili Tchersky <vt+git@vbcy.org>
2025-02-17build(deps): bump github/codeql-action from 3.28.8 to 3.28.9dependabot[bot]-2/+2
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.8 to 3.28.9. - [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/dd746615b3b9d728a6a37ca2045b68ca76d4841a...9e8d0789d4a0fa9ceb6b1738f7e269594bdd67f0) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
2025-02-17Add comment for fuse_passthrough_open()Maksim Harbachou-0/+2
See https://github.com/libfuse/libfuse/issues/1125 Signed-off-by: Maksim Harbachou <maksim.harbachou@resilio.com>
2025-02-17ci-build test: Add a 32-bit compilation testBernd Schubert-1/+23
That was missing so far. Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
2025-02-17tests: Skip the ioctl test for x86 cross compilationBernd Schubert-0/+13
Probably some weird corner case in cross compilation, for now we ignore this. Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2025-02-17example/hello_ll_uds: Switch to %zu and avoid 32bit build warningBernd Schubert-2/+2
Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2025-02-17fusermount: Exclude UFSD from whitelist for 32-bit buildsBernd Schubert-0/+2
The UFSD super magic is larger than 32-bit - I don't know if truncating to 32-bit would work - we just exclude it for now. Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2025-02-17Fix build of example/memfs_ll.cc on 32 bit architecturesLaszlo Boszormenyi (GCS)-2/+2
The code uses std::min() which expects its arguments to be size_t. Two times it uses an offset declared as off_t. While both size_t and off_t are 32-bit integers, the latter is signed. On 64 bit architectures the conversation of off_t -> size_t performed automatically. On 32 bit architectures it needs a type cast. Signed-off-by: Laszlo Boszormenyi (GCS) <gcs@debian.org>
2025-02-13Add signify key for 3.18Bernd Schubert-0/+2
Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
2025-02-12passthrough_hp: enable splice move by defaultJoanne Koong-3/+5
This commit enables splice moves by default, unless the caller opts into nosplice. Signed-off-by: Joanne Koong <joannelkoong@gmail.com>
2025-02-10Prepare 3.17.1 releaseBernd Schubert-2/+22
Update ChangeLog.rst and AUTHORS Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2025-02-10Change version to 3.17.1-rc0Bernd Schubert-12/+23
Somehow really hard to set -rcX with meson. Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
2025-02-10Build fixes for -OgBernd Schubert-2/+2
Cleaning... 18 files. [35/69] Compiling C object example/passthrough_ll.p/passthrough_ll.c.o ../example/passthrough_ll.c: In function ‘lo_opendir’: ../example/passthrough_ll.c:666:20: warning: ‘fd’ may be used uninitialized [-Wmaybe-uninitialized] 666 | if (fd != -1) | ^ ../example/passthrough_ll.c:637:13: note: ‘fd’ was declared here 637 | int fd; | ^~ [38/69] Compiling C object test/test_syscalls.p/test_syscalls.c.o ../test/test_syscalls.c: In function ‘test_seekdir’: ../test/test_syscalls.c:804:16: warning: ‘de’ may be used uninitialized [-Wmaybe-uninitialized] 804 | while (de) | ^~ ../test/test_syscalls.c:776:24: note: ‘de’ was declared here 776 | struct dirent *de; | ^~ These are actually valid. Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2025-02-10fuse_new version fixes: Change to fuse_new_versionedBernd Schubert-43/+18
Another additon for https://github.com/libfuse/libfuse/issues/1092 Use _fuse_new_versioned() instead of _fuse_new_317 and actually also remove symbol versioning for it - we don't need it. Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
2025-02-10fuse_new: Fix non symboled call to _fuse_new_317Bernd Schubert-1/+1
Acidentally the wrong non-existing function was ccalled. Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
2025-02-09Rename to fuse_session_new_versionedBernd Schubert-50/+35
Similar previous renames to fuse_main_real_versioned, but here for the low level fuse_session_new. Also remove symbol versioned as part of "fuse_session_new" as that function is not part of the official API/ABI and to allow easier access with dlopen/dlsym. Also switch back to a macro fuse_session_new, just in case some code has some expectations on that. Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
2025-02-09Make fuse_main a macro again and wrap that to fuse_main_fnBernd Schubert-4/+6
As suggested by Bill in Issue #1092 make fuse_main a macro again, just in case some applications expect it to be a macro. Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
2025-02-09Rename fuse_main_real_317 to fuse_main_real_versionedBernd Schubert-18/+23
As suggested by Bill in Issue #1092, rename to _versioned so that applications using dlopen/dlvsym better understand the meaning of this function. Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
2025-02-08build(deps): bump github/codeql-action from 3.28.6 to 3.28.8dependabot[bot]-2/+2
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.6 to 3.28.8. - [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/17a820bf2e43b47be2c72b39cc905417bc1ab6d0...dd746615b3b9d728a6a37ca2045b68ca76d4841a) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
2025-01-31fuse_lowlevel.c: drop incorrect comment from convert_to_conn_want_ext()Luis Henriques-2/+0
The comment is probably a leftover from older versions, as the application of the 32 bits of conn.capable_ext to conn.capable is done before function convert_to_conn_want_ext() is invoked. Signed-off-by: Luis Henriques <luis@igalia.com>
2025-01-31fuse_lowlevel.c: fix possible 64 bits value truncationLuis Henriques-1/+1
Because conn.want_ext is a uint64_t, copying it into a uint32_t may result in truncating it's value. This patch fixes a bug in do_init() where the 32 bits copy is again converted into a 64 bits value, because it will be used in convert_to_conn_want_ext(). Signed-off-by: Luis Henriques <luis@igalia.com>
2025-01-29github actions: Add an include-what-you-need checkBernd Schubert-0/+51
Probably lots of issues right now, so let's fix it step by step by only checking modified files - new PRs should fix their modified files. Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
2025-01-28build(deps): bump github/codeql-action from 3.28.1 to 3.28.6dependabot[bot]-2/+2
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.1 to 3.28.6. - [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/b6a472f63d85b9c78a3ac5e89422239fc15e9b3c...17a820bf2e43b47be2c72b39cc905417bc1ab6d0) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
2025-01-28lib: Set thread namesBernd Schubert-0/+8
Main worker threads: fuse_worker high level clean up threads: "fuse_prune_nodes" Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
2025-01-24abidiff: Don't warn about added symbolsBernd Schubert-1/+2
So far we only want it to warn about changed symbols. Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
2025-01-24checkpatch: Ignore ENOSYS_SYSCALLBernd Schubert-1/+1
This ENOSYS is the fuse protocol return code to tell fuse client/kernel that an operation is not supported, warning on it is not right. Signed-off-by: Bernd Schubert <bernd@bsbernd.com>