aboutsummaryrefslogtreecommitdiffstats
path: root/lib/fuse_uring.c
AgeCommit message (Collapse)AuthorLines
2025-08-22send_reply_uring: Avoid memcpy if src and dest are identicalBernd Schubert-1/+2
The application might have just written directly into the payload to no need to copy it and in fact, using memcpy would be undefined behavior. Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2025-08-22Allow applications to retrieve the req payload (io-uring only)Bernd Schubert-0/+24
With io-uring the req owns the payload buffer, the application can directly access it and copy data into it. fuse_buf_copy_one() already has a check for dstmem == srcmem and skips data copies. fuse_reply_data fuse_reply_data_uring fuse_buf_copy fuse_buf_copy_one Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2025-08-22fuse-io-uring: Release io-uring resources on io-uring startup failureBernd Schubert-0/+5
Operation might continue without io-uring, so just free these resources. Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2025-08-22fuse-io-uring: Fix double count of ring_pool->failed_threadsBernd Schubert-3/+0
This is already done a few lines below. And actually no reason to hold the lock at all given the variables are atomics now. Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2025-08-22io-uring startup: Fix spinning and variable readBernd Schubert-10/+15
Reported-by: lixianming <lixianming.19951001@bytedance.com> Closes: https://github.com/libfuse/libfuse/pull/1317 Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
2025-07-22Split fuse-io-uring startupBernd Schubert-4/+56
Start the ring threads before sending fuse_reply_ok() so that io-uring startup issues can be non-fatal. Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2025-07-22fuse-io-uring: Add sanity check for the number of queue entriesBernd Schubert-2/+7
fuse-io-uring would create a blocking mount with 0 queue entries, we need a sanity check for it. Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2025-07-22fuse-over-io-uring: Remove handling of -EOPNOTSUPPBernd Schubert-11/+3
-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>
2025-06-27license: s/COPYING/GPL2.txt, s/COPYING.LIB/LGPL2.txtizxl007-1/+1
Signed-off-by: izxl007 <zeng.zheng@zte.com.cn>
2025-06-17Fix io-uring teardownBernd Schubert-4/+10
We need to write an uint64_t to eventfd. Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2025-05-22Fix build in musl libcLuis Henriques-1/+1
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>
2025-04-28Add a README for fuse-over-io-uringBernd Schubert-2/+1
Also update the comment description of fuse_uring.c Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2025-04-28Add fuse-io-uring reply supportBernd Schubert-0/+150
Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2025-04-28Add fuse_session_process_uring_cqeBernd Schubert-15/+0
Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2025-04-28Add a basic io-uring cqe handlerBernd Schubert-3/+92
Not function yet, just preparation. Signed-off-by: Bernd Schubert <bschubert@ddn.com>
2025-04-28fuse: Add ring creationBernd Schubert-0/+548
Signed-off-by: Bernd Schubert <bschubert@ddn.com>