aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorLines
2020-07-03Fix the typo "filed" -> "field" in fuse manpage (#524)winndows-1/+1
Fix the typo "filed" -> "field" in fuse manpage. Signed-off-by: Liao Pingfang <liao.pingfang@zte.com.cn> Co-authored-by: Liao Pingfang <liao.pingfang@zte.com.cn>
2020-07-03README: Correct the directory name from 'examples' to 'example' (#526)winndows-1/+1
Correct the directory name from 'examples' to 'example' in readme. Signed-off-by: Liao Pingfang <liao.pingfang@zte.com.cn> Co-authored-by: Liao Pingfang <liao.pingfang@zte.com.cn>
2020-07-03docs: Replace `mesonconf` with `meson configure` (#528)Craig Chi-4/+4
Fixes #527
2020-07-01libfuse: Assign NULL to "old" to avoid free it twice (#522)winndows-0/+1
Assign NULL to "old" at the first free(), to avoid the possible 2nd free() for it. Signed-off-by: Liao Pingfang <liao.pingfang@zte.com.cn> Co-authored-by: Liao Pingfang <liao.pingfang@zte.com.cn>
2020-06-22Typo fixed. (#520)Seunghoon Yeon-1/+1
2020-06-12Released 3.9.2Nikolaus Rath-1/+11
2020-05-15fix format in test (#515)Rosen Penev-1/+1
Fixes warning under 32-bit.
2020-05-15Avoid closing se->fd twice in fuse_lowlevel.c (#516)Fabian Vogt-0/+1
If fuse_session_unmount is called before fuse_session_destroy, both would try to close(se->fd). Avoid that by resetting it in fuse_session_unmount.
2020-05-14passthrough_ll: remove symlink fallbacks (#514)Miklos Szeredi-139/+14
* passthrough_ll/hp: remove symlink fallbacks Path lookup in the kernel has special rules for looking up magic symlinks under /proc. If a filesystem operation is instructed to follow symlinks (e.g. via AT_SYMLINK_FOLLOW or lack of AT_SYMLINK_NOFOLLOW), and the final component is such a proc symlink, then the target of the magic symlink is used for the operation, even if the target itself is a symlink. I.e. path lookup is always terminated after following a final magic symlink. I was erronously assuming that in the above case the target symlink would also be followed, and so workarounds were added for a couple of operations to handle the symlink case. Since the symlink can be handled simply by following the proc symlink, these workardouds are not needed. Signed-off-by: Miklos Szeredi <mszeredi@redhat.com> Co-authored-by: Miklos Szeredi <mszeredi@redhat.com>
2020-04-20Do not require C++ compiler for buildingFabrice Fontaine-2/+2
Fixes: - http://autobuild.buildroot.org/results/a6e64213f2910b2b81e79cb1e96e558413d7f70a Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2020-03-19Released 3.9.1Nikolaus Rath-11/+15
2020-03-13Fix issue preventing using splice with reads (#505)Jean-Yves VET-8/+6
Context: SPLICE_WRITE is not used with regular buffers (i.e. when they are not file-descriptor backed buffers). There is a bug which assumes file descriptors are used. If the amount of data associated with those FD is lower than twice the page size, SPLICE_WRITE is not utilized. With regular buffers the aggregated size was always 0. Because vmsplice (splice user pages to/from a pipe) is called before splice in fuse_lowlevel.c, regular buffers would also work with splice. This patch prevents to fallback to non-splice enabled copies when itheir is no FD involved.
2020-03-13Align help options (#500)Andrew Gaul-1/+1
2020-03-13State GPL version in comment (#485)Dr. David Alan Gilbert-23/+23
IN a bunch of comments we say 'under the terms of the GNU GPL', make it clear this is GPLv2 (as LICENSE says). Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
2020-02-24passthrough_ll: Remove unneeded variable assignment (#501)philmd-2/+0
Fix warning reported by Clang static code analyzer: example/passthrough_ll.c:390:5: warning: Value stored to 'saverr' is never read saverr = ENOMEM; ^ ~~~~~~ Fixes: 4a92a82f2e2 Reported-by: Clang Static Analyzer Reviewed-by: Ján Tomko <jtomko@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2020-02-24Travis-CI: Fix ImportError: No module named 'zipp' (#502)philmd-0/+1
Upgrade pip to fix [*]: [66/66] Linking target example/passthrough_hp. Traceback (most recent call last): File "/usr/lib/python3.5/runpy.py", line 174, in _run_module_as_main mod_name, mod_spec, code = _get_module_details(mod_name, _Error) File "/usr/lib/python3.5/runpy.py", line 133, in _get_module_details return _get_module_details(pkg_main_name, error) File "/usr/lib/python3.5/runpy.py", line 109, in _get_module_details __import__(pkg_name) File "/usr/local/lib/python3.5/dist-packages/pytest/__init__.py", line 6, in <module> from _pytest.assertion import register_assert_rewrite File "/usr/local/lib/python3.5/dist-packages/_pytest/assertion/__init__.py", line 7, in <module> from _pytest.assertion import rewrite File "/usr/local/lib/python3.5/dist-packages/_pytest/assertion/rewrite.py", line 24, in <module> from _pytest.assertion import util File "/usr/local/lib/python3.5/dist-packages/_pytest/assertion/util.py", line 14, in <module> import _pytest._code File "/usr/local/lib/python3.5/dist-packages/_pytest/_code/__init__.py", line 2, in <module> from .code import Code # noqa File "/usr/local/lib/python3.5/dist-packages/_pytest/_code/code.py", line 28, in <module> import pluggy File "/usr/local/lib/python3.5/dist-packages/pluggy/__init__.py", line 16, in <module> from .manager import PluginManager, PluginValidationError File "/usr/local/lib/python3.5/dist-packages/pluggy/manager.py", line 11, in <module> import importlib_metadata File "/usr/local/lib/python3.5/dist-packages/importlib_metadata/__init__.py", line 9, in <module> import zipp ImportError: No module named 'zipp' The command "test/travis-build.sh" exited with 1. [*] https://travis-ci.org/libfuse/libfuse/builds/651523034 Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2020-02-04Include limits.h because of PATH_MAX usage. (#498)maxice8-0/+1
Fixes build with musl libc on Alpine Linux.
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-30examples: mark ops variables constant (#496)zsugabubus-13/+13
2020-01-27Remove trailing comma in enums (#494)zsugabubus-6/+6
They are illegal in C89/90.
2020-01-25Fixes 477, optional src_dir in tst_(rmdir,unlink) (#493)Anthony Rebello-8/+20
tst_rmdir and tst_unlink now pass for passthrough_hp. Previously, tst_rmdir and tst_unlink created the directory / file using src_dir, causing the test to fail as the cache was stale. Now, the src_dir is optional. When cache is enabled, tst_rmdir and tst_unlink do not provide a src_dir, forcing the test to use mnt_dir itself.
2020-01-24passthrough_ll: Use cache_readdir for directory open (#492)Misono Tomohiro-1/+1
Upstreamed from: https://www.redhat.com/archives/virtio-fs/2020-January/msg00106.html Since keep_cache(FOPEN_KEEP_CACHE) has no effect for directory as described in fuse_common.h, use cache_readdir(FOPEN_CACHE_DIR) for diretory open when cache=always mode. Signed-off-by: Misono Tomohiro <misono.tomohiro@jp.fujitsu.com>
2020-01-06passthrough_ll: pass correct errno to fuse_reply_err()Dr. David Alan Gilbert-1/+1
fuse_reply_err() expects the error code, not its negative. Upstreamed from https://www.redhat.com/archives/virtio-fs/2020-January/msg00000.html. Original commit message: lo_copy_file_range() passes -errno to fuse_reply_err() and then fuse_reply_err() changes it to errno again, so that subsequent fuse_send_reply_iov_nofree() catches the wrong errno.(i.e. reports "fuse: bad error value: ..."). Make fuse_send_reply_iov_nofree() accept the correct -errno by passing errno directly in lo_copy_file_range(). Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com> Reviewed-by: Eryu Guan <eguan@linux.alibaba.com> Co-authored-by: Xiao Yang <ice_yangxiao@163.com>
2020-01-02Fixed up ChangeLog.rstNikolaus Rath-3/+6
Last two changes were not part of the released version.
2020-01-02Fixed memory leak in fuse_session_new()Bill Zissimopoulos-1/+4
2020-01-02Fixed an issue with the linker version script. (#483)Bill Zissimopoulos-1/+2
Fixes #467.
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-4/+29
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-14Released 3.9.0Nikolaus Rath-2/+3
2019-11-29Kill off some proto_major < 6 checks (#476)Dr. David Alan Gilbert-5/+5
fuse_init already refuses to start if we're on major < 7 , so we can kill off checks for old major versions. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
2019-11-27Added support for FUSE_EXPLICIT_INVAL_DATA to enable (#474)Albert Chen-0/+35
2019-11-20fix memleak in cuse_lowlevel_setup (#472)Tomasz Kulasek-0/+1
Local variable args is not freed on cuse_lowlevel_setup success. Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com>
2019-11-20Invoke cleanup() with right arguments.Nikolaus Rath-1/+1
This currently causes hangs if the test fails, cf issue #459.
2019-11-03Released 3.8.0Nikolaus Rath-3/+5
2019-11-03Implement lseek operation (#457)Yuri Per-0/+194
2019-11-03Use the -o intr mount option on FreeBSD (#462)Alan Somers-0/+3
FUSE file systems normally indicate their interruptibility by returning ENOSYS to the first FUSE_INTERRUPT operation. But that causes two problems for file systems that aren't interruptible: 1) A process may block on a signal, even if another thread could've handled the signal. The kernel must know whether the FUSE thread is interruptible before deciding which thread should receive a signal. 2) The protocol allows a FUSE daemon to simply ignore FUSE_INTERRUPT operations. From the kernel's point of view, that is indistinguishable from a FUSE_INTERRUPT operation arriving after the original operation had already completed. Thus, the kernel can't interpret an ignored FUSE_INTERRUPT as an indication that the daemon is non-interruptible. With the -o nointr mount option, no FUSE_INTERRUPT operations will ever be sent. Most FUSE file systems should require no modifications to take advantage of this mount option.
2019-11-03passthrough_ll: drop lo_dirp->fd field (#464)Stefan Hajnoczi-7/+9
fdopendir(3) takes ownership of the file descriptor. The presence of the lo_dirp->fd field could lead to someone incorrectly adding a close(d->fd) cleanup call in the future. Do not store the file descriptor in struct lo_dirp since it is unused. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
2019-10-24Update README.md (#465)Emily Herbert-1/+1
2019-09-27Released 3.7.0Nikolaus Rath-3/+10
2019-09-15Whitelist UFSD (#451)tenzap-0/+3
2019-09-10passthrough_ll: use fuse_log() instead of err()/errx()Stefan Hajnoczi-8/+17
Send everything through fuse_log() instead of writing directly to stderr. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2019-09-10passthrough_ll: use fuse_log()Stefan Hajnoczi-16/+16
Make use of fuse_log() instead of printing directly to stderr. This demonstrates unified logging and also caught the fact that I forgot to add fuse_log APIs to lib/fuse_versionscript. So it's basically a test case :). Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2019-09-10log: move fuse_log() to the public header fileStefan Hajnoczi-3/+14
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-09passthrough_ll: fix fallocate variant ifdefs (#449)Dr. David Alan Gilbert-2/+2
If fallocate isn't available we incorrectly check for the value of HAVE_POSIX_FALLOCATE rather than it being defined. We also fail to initialise 'err' in the case where neither are defined. Fixes: 5fc562c90d7925963467 ("Add fallocate and use it instead of ...") Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
2019-09-04Introduce callback for loggingStefan Hajnoczi-175/+303
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-29Avoid gcc 9.1 strncpy(3) warnings (#447)Stefan Hajnoczi-4/+5
Recent GCC releases have warnings related to common strncpy(3) bugs. These warnings can be avoided by explicitly NUL-terminating the buffer or using memcpy(3) when the intention is to copy just the characters without the NUL terminator. This commit fixes the following warnings: [1/27] Compiling C object 'test/9f86d08@@test_syscalls@exe/test_syscalls.c.o'. In function ‘test_socket’, inlined from ‘main’ at ../test/test_syscalls.c:1899:9: ../test/test_syscalls.c:1760:2: warning: ‘strncpy’ output may be truncated copying 108 bytes from a string of length 1023 [-Wstringop-truncation] 1760 | strncpy(su.sun_path, testsock, sizeof(su.sun_path)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [2/27] Compiling C object 'lib/76b5a35@@fuse3@sha/fuse.c.o'. ../lib/fuse.c: In function ‘add_name’: ../lib/fuse.c:968:2: warning: ‘strncpy’ output truncated before terminating nul copying as many bytes from a string as its length [-Wstringop-truncation] 968 | strncpy(s, name, len); | ^~~~~~~~~~~~~~~~~~~~~ ../lib/fuse.c:944:15: note: length computed here 944 | size_t len = strlen(name); | ^~~~~~~~~~~~ [3/27] Compiling C object 'lib/76b5a35@@fuse3@sha/fuse_lowlevel.c.o'. ../lib/fuse_lowlevel.c: In function ‘fuse_add_direntry’: ../lib/fuse_lowlevel.c:288:2: warning: ‘strncpy’ output truncated before terminating nul copying as many bytes from a string as its length [-Wstringop-truncation] 288 | strncpy(dirent->name, name, namelen); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../lib/fuse_lowlevel.c:276:12: note: length computed here 276 | namelen = strlen(name); | ^~~~~~~~~~~~ ../lib/fuse_lowlevel.c: In function ‘fuse_add_direntry_plus’: ../lib/fuse_lowlevel.c:381:2: warning: ‘strncpy’ output truncated before terminating nul copying as many bytes from a string as its length [-Wstringop-truncation] 381 | strncpy(dirent->name, name, namelen); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../lib/fuse_lowlevel.c:366:12: note: length computed here 366 | namelen = strlen(name); | ^~~~~~~~~~~~ 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