diff options
author | Bernd Schubert <bernd@bsbernd.com> | 2025-09-18 23:49:41 +0200 |
---|---|---|
committer | Bernd Schubert <bernd@bsbernd.com> | 2025-09-19 22:48:11 +0200 |
commit | 50d1bec4794aae9e77062de5214b91bcc52a890d (patch) | |
tree | c32b7ee25722b0cdaea8d51d376ef45129ea67a7 /lib/fuse_i.h | |
parent | 3e2cd9e46c87a57de374b82fd198328f7745e942 (diff) | |
download | libfuse-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.h | 9 |
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); |