aboutsummaryrefslogtreecommitdiffstats
path: root/lib/fuse_i.h
diff options
context:
space:
mode:
authorBernd Schubert <bernd@bsbernd.com>2025-09-18 23:49:41 +0200
committerBernd Schubert <bernd@bsbernd.com>2025-09-19 22:48:11 +0200
commit50d1bec4794aae9e77062de5214b91bcc52a890d (patch)
treec32b7ee25722b0cdaea8d51d376ef45129ea67a7 /lib/fuse_i.h
parent3e2cd9e46c87a57de374b82fd198328f7745e942 (diff)
downloadlibfuse-50d1bec4794aae9e77062de5214b91bcc52a890d.tar.gz
io-uring: re-initialize fields in struct fuse_req
In io-uring mode these requests are always re-used and not allocated - we need to re-initialize them. In order to set flags to zero a struct holding the flags had to be added. Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
Diffstat (limited to 'lib/fuse_i.h')
-rw-r--r--lib/fuse_i.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/fuse_i.h b/lib/fuse_i.h
index d3d86d4..d35e1e5 100644
--- a/lib/fuse_i.h
+++ b/lib/fuse_i.h
@@ -38,9 +38,11 @@ struct fuse_req {
struct fuse_ctx ctx;
struct fuse_chan *ch;
int interrupted;
- unsigned int ioctl_64bit : 1;
- unsigned int is_uring : 1;
- unsigned int is_copy_file_range_64 : 1;
+ struct {
+ unsigned int ioctl_64bit : 1;
+ unsigned int is_uring : 1;
+ unsigned int is_copy_file_range_64 : 1;
+ } flags;
union {
struct {
uint64_t unique;
@@ -218,6 +220,7 @@ int fuse_kern_mount(const char *mountpoint, struct mount_opts *mo);
int fuse_send_reply_iov_nofree(fuse_req_t req, int error, struct iovec *iov,
int count);
void fuse_free_req(fuse_req_t req);
+void list_init_req(struct fuse_req *req);
void _cuse_lowlevel_init(fuse_req_t req, const fuse_ino_t nodeid,
const void *req_header, const void *req_payload);