aboutsummaryrefslogtreecommitdiffstats
path: root/example/hello_ll.c
AgeCommit message (Collapse)AuthorLines
2025-06-27license: s/COPYING/GPL2.txt, s/COPYING.LIB/LGPL2.txtizxl007-1/+1
Signed-off-by: izxl007 <zeng.zheng@zte.com.cn>
2025-03-26example/hello_ll.c: Improve the compilation commentsizxl007-0/+4
When building and installing FUSE3 using Meson on CentOS8, the fuse3.pc file is installed in the /usr/local/lib64/pkgconfig directory. However, pkg-config does not search for fuse3.pc in this directory, leading to GCC compilation failures. This patch improves the compilation comments, helping users successfully execute the GCC command. Signed-off-by: izxl007 <zeng.zheng@zte.com.cn>
2025-03-24fuse: Fix want flag conversionBernd Schubert-0/+4
32-bit conn->want flags been left to be ABI compatible to 3.10, even though the so version was changed. The more recent way is to use fuse_set_feature_flag(), which will use conn->want_ext. Given that we now have two flags (want and want_ext), we need to convert and that brought several issues - If the application sets conn->want, that needs to be set into the lower 32 bit of conn->want_ext. As the application might actually unset values, it really has to be a copy and not just 'or' - fixed now. - convert_to_conn_want_ext() actually needs to check for _modified_ conn->want and conn->want_ext - convert_to_conn_want_ext() must consider being called from high and lowlevel interfact, with different want_ext_default and want_default values. It is only a failure, if the application changed both, conn->want and conn->want_ext. This function was failing in issue #1171, because high level fuse_fs_init() was changing values and then lowlevel do_init() was incorrectly failing on that. This also adds a new test (test_want_conversion) and sets values into example/{hello.c,hello_ll.c} Also some more internal users of conn->want are converted to fuse_{set,unset}_feature_flag(). Closes: https://github.com/libfuse/libfuse/issues/1171 Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
2024-08-01Fix FUSE_USE_VERSION in example/Bernd Schubert-1/+1
This is an addition to commit a8f1ae35af66, which introduced the 312 API, but didn't set the right API version in all examples. Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2024-06-04Add support for no_interrupt (#956)yangyun50-0/+9
The function fuse_session_process_buf_int() would do much things for FUSE_INTERRUPT requests, even there are no FUSE_INTERRUPT requests: 1. check every non-FUSE_INTERRUPT request and add these requests to the linked list(se->list) under a big lock(se->lock). 2. the function fuse_free_req() frees every request and remove them from the linked list(se->list) under a bing lock(se->lock). These operations are not meaningful when there are no FUSE_INTERRUPT requests, and have a great impact on the performance of fuse filesystem because the big lock for each request. In some cases, FUSE_INTERRUPT requests are infrequent, even none at all. Besides, the user-defined filesystem may do nothing for FUSE_INTERRUPT requests. And the kernel side has the option "no_interrupt" in struct fuse_conn. This kernel option can be enabled by return ENOSYS in libfuse for the reply of FUSE_INTERRUPT request. But I don't find the code to enable the "no_interrupt" kernel option in libfuse. So add the no_interrupt support, and when this operaion is enabled: 1. remove the useless locking operaions and list operations. 2. return ENOSYS for the reply of FUSE_INTERRUPT request to inform the kernel to disable FUSE_INTERRUPT request.
2024-04-20example/: Convert all fuse_session_loop_mt users to 3.12 API (#931)Bernd Schubert-4/+7
Convert all the remaining users of fuse_session_loop_mt() to the new 3.12 config api.
2023-12-17Allow *xattr operations on root directory (ino 1)amitgeron-3/+3
2023-04-01Fix compiler warning in hello_ll.c (#760)Nikolaus Rath-2/+4
2023-04-01Add unit tests for setxattr() et alNikolaus Rath-5/+54
Hopefully, this will catch issues as in commit 024eccbf3
2020-09-09Updated example code to work with new API (#547)AKowshik-3/+7
2020-03-13State GPL version in comment (#485)Dr. David Alan Gilbert-1/+1
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-01-30examples: mark ops variables constant (#496)zsugabubus-1/+1
2019-03-08Document fuse_fsync_in.fsync_flags and remove magic numbers (#375)Alan Somers-1/+1
2019-02-25hello_ll: Fix null pointer dereference (#363)Forty-Bot-0/+7
If hello_ll is invoked without a mountpoint, it will try to call fuse_session_mount anyway with the NULL mountpoint (which then causes a segfault). Print out a short help message instead (taken from passthrough_ll.c).
2017-09-25Removed unneccessary #include <config.h> from examplesNikolaus Rath-2/+0
Fixes: #208.
2017-07-08Added public fuse_lib_help(), bumped minor versionNikolaus Rath-1/+1
2016-10-28Clean-up doxygen documentationNikolaus Rath-25/+4
Fixes: #81.
2016-10-15Make --help output more suitable for end-userNikolaus Rath-2/+1
We now only list options that are potentially useful for an end-user (and unlikely to accidentally break a file system). The full list of FUSE options has been moved to the documentation of the fuse_new() and fuse_session_new() functions.
2016-10-15Unify handling of fuse_conn_info optionsNikolaus Rath-1/+0
Instead of using command line options to modify struct fuse_conn_info before and after calling the init() handler, we now give the file system explicit control over this.
2016-10-13Make -o clone_fd into a parameter of session_loop_mt().Nikolaus Rath-1/+1
This option really affects the behavior of the session loop, not the low-level interface. Therefore, it does not belong in the fuse_session object.
2016-10-09fuse_parse_cmdline(): do not print help/version textNikolaus Rath-2/+12
The current behavior makes it difficult to add help for additional options. With the change, this becomes a lot easier.
2016-10-08Add background and multithreading support to hello_ll and fuse_lo-plusNikolaus Rath-7/+6
2016-10-02Don't handle --help and --version in fuse_session_new().Nikolaus Rath-16/+26
Help and version messages can be generated using the new fuse_lowlevel_help(), fuse_lowlevel_version(), fuse_mount_help(), and fuse_mount_version() functions. The fuse_parse_cmdline() function has been made more powerful to do this automatically, and is now explicitly intended only for low-level API users. This is a code simplication patch. We don't have to parse for --help and --version in quite as many places, and we no longer have a low-level initialization function be responsible for the (super-high level) task of printing a program usage message. In the high-level API, we can now handle the command line parsing earlier and avoid running other initialization code if we're just going to abort later on.
2016-10-02Fixed permissions of source files.Nikolaus Rath-0/+0
2016-10-02Turn struct fuse_chan into an implementation detailNikolaus Rath-21/+25
The only struct fuse_chan that's accessible to the user application is the "master" channel that is returned by fuse_mount and stored in struct fuse_session. When using the multi-threaded main loop with the "clone_fd" option, each worker thread gets its own struct fuse_chan. However, none of these are available to the user application, nor do they hold references to struct fuse_session (the pointer is always null). Therefore, any presence of struct fuse_chan can be removed without loss of functionality by relying on struct fuse_session instead. This reduces the number of API functions and removes a potential source of confusion (since the new API no longer looks as if it might be possible to add multiple channels to one session, or to share one channel between multiple sessions). Fixes issue #17.
2016-10-02Renamed fuse_lowlevel_new() to fuse_session_new().Nikolaus Rath-1/+1
2016-10-02Introduce separate mount/umount functions for low-level API.Nikolaus Rath-2/+2
2013-07-25libfuse: fuse -> fuse3Miklos Szeredi-1/+1
Allow 2.X and 3.X to coexist. Includes are now stored under /usr/include/fuse3 and library is named libfuse3.*. Invoke pkg-config with "fuse3" as the first argument to build with version 3 of the library.
2013-07-24libfuse: remove "-D_FILE_OFFSET_BITS=64" from fuse.pcMiklos Szeredi-0/+2
add AC_SYS_LARGEFILE to your configure.ac instead.
2013-07-17Documentation fixesMiklos Szeredi-7/+8
2013-07-02rewrote c++ style comments to c style coments mentioned by Miklos SzerediJoachim Schiele-3/+3
2013-06-20- added a doxygen main pageJoachim Schiele-4/+37
- modified all examples to be included in doxygen - modified the API documentation to have more details - added the 490px_FUSE_structure.svg.png (c) wikipedia
2012-07-19Start of 3.0 seriesMiklos Szeredi-1/+1
Change the version numbers. This is going to be a new major version of the library breaking backward compatibility on the binary level as well as the source level.
2012-05-16Fix the compile command in the examplesMiklos Szeredi-1/+1
Reported by Luciano Dalle Ore
2007-12-12change indentingMiklos Szeredi-115/+116
2007-04-25update copyright datesMiklos Szeredi-1/+1
2006-10-01Add init scriptMiklos Szeredi-0/+4
2006-03-17fixMiklos Szeredi-12/+6
2006-03-01pass device file descriptor to fuse_unmountCsaba Henk-2/+5
2006-02-17fixMiklos Szeredi-6/+8
2006-01-06fixMiklos Szeredi-14/+14
2005-10-03fixMiklos Szeredi-1/+0
2005-08-25fixMiklos Szeredi-1/+4
2005-08-14cleanupMiklos Szeredi-6/+12
2005-08-03fixMiklos Szeredi-1/+1
2005-07-21fixesMiklos Szeredi-5/+4
2005-07-15added lowlevel APIMiklos Szeredi-1/+1
2005-07-13inode based API first working versionMiklos Szeredi-0/+170