Commit Graph

10 Commits

Author SHA1 Message Date
yangyun50
cef8c8b249
Add support for no_interrupt (#956)
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-06-04 13:50:48 +02:00
Christian Menges
57b46adc35
Cuse example: Fix memory leak (#607)
* cuse example: fix memory leak

* Travis CI: re-enable leak checking
2021-06-09 09:04:41 +01:00
Dr. David Alan Gilbert
252e978c54
State GPL version in comment (#485)
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-03-13 16:46:44 +00:00
Nikolaus Rath
f750abb757 Removed unneccessary #include <config.h> from examples
Fixes: #208.
2017-09-25 10:17:11 +01:00
Nikolaus Rath
e71bb48557 Fix two compiler warnings. 2017-08-22 13:59:17 +02:00
Nikolaus Rath
e870a0427a Added public fuse_lib_help(), bumped minor version 2017-07-08 12:48:08 +02:00
Nikolaus Rath
3006686b53 Replaced evil pointer magic with offsetof()
This triggered undefined behaviour warnings from UBSan.
2017-01-12 15:19:04 -08:00
divinity76
776ef9f83b silence bogus eclipse linter warning
"No break at the end of case	cuse.c     /example     line 235  Code Analysis Problem"
2016-10-31 14:39:20 +01:00
Nikolaus Rath
7983414b33 Clean-up doxygen documentation
Fixes: #81.
2016-10-28 20:44:39 -07:00
Nikolaus Rath
35ce627e35 Renamed cuses example and added test program
An earlier version of the fioclient.c example was intended to be
used together with cusexmp.c. The former has since evolved into
ioctl_client.c and no longer has the function necessary to test
CUSE. Therefore, we've added a new cuse_client.c that is clearly
associated with the cuse.c example file system.
2016-10-09 22:03:07 -07:00