From f2c8e5d9ebafa94c5d3e76a5ab6ca3f9c9fb0ff9 Mon Sep 17 00:00:00 2001 From: Antonio SJ Musumeci Date: Wed, 1 Apr 2026 14:34:55 -0500 Subject: [PATCH] Add FUSE request_timeout Not yet hooked up to config parser to set as need to evaluate usage. --- vendored/libfuse/include/fuse_cfg.hpp | 2 ++ vendored/libfuse/lib/debug.cpp | 8 ++++++-- vendored/libfuse/lib/fuse_lowlevel.cpp | 6 ++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/vendored/libfuse/include/fuse_cfg.hpp b/vendored/libfuse/include/fuse_cfg.hpp index 87dce1a7..1cedb2f5 100644 --- a/vendored/libfuse/include/fuse_cfg.hpp +++ b/vendored/libfuse/include/fuse_cfg.hpp @@ -46,6 +46,8 @@ public: int process_thread_count = -1; int process_thread_queue_depth = 2; std::string pin_threads = "false"; + + u16 request_timeout = 0; }; extern fuse_cfg_t fuse_cfg; diff --git a/vendored/libfuse/lib/debug.cpp b/vendored/libfuse/lib/debug.cpp index d9435627..57a48c2c 100644 --- a/vendored/libfuse/lib/debug.cpp +++ b/vendored/libfuse/lib/debug.cpp @@ -1212,6 +1212,7 @@ fuse_syslog_fuse_init_out(const struct fuse_init_out *arg_) " max_pages={};" " map_alignment={};" " max_stack_depth={};" + " request_timeout={};" " flags=(", arg_->major, arg_->minor, @@ -1222,7 +1223,8 @@ fuse_syslog_fuse_init_out(const struct fuse_init_out *arg_) arg_->time_gran, arg_->max_pages, arg_->map_alignment, - arg_->max_stack_depth); + arg_->max_stack_depth, + arg_->request_timeout); for(uint64_t i = 0; i < (sizeof(flags)*8); i++) { @@ -1268,6 +1270,7 @@ fuse_debug_init_out(const uint64_t unique_, " time_gran={}" " max_pages={}" " map_alignment={}" + " request_timeout={}" "\n", _timestamp_ns(), unique_, @@ -1282,7 +1285,8 @@ fuse_debug_init_out(const uint64_t unique_, arg_->max_write, arg_->time_gran, arg_->max_pages, - arg_->map_alignment); + arg_->map_alignment, + arg_->request_timeout); } static diff --git a/vendored/libfuse/lib/fuse_lowlevel.cpp b/vendored/libfuse/lib/fuse_lowlevel.cpp index c140eb5f..2e093ab8 100644 --- a/vendored/libfuse/lib/fuse_lowlevel.cpp +++ b/vendored/libfuse/lib/fuse_lowlevel.cpp @@ -1255,6 +1255,12 @@ do_init(fuse_req_t *req, outarg.max_stack_depth = fuse_cfg.passthrough_max_stack_depth; } + if((inargflags & FUSE_REQUEST_TIMEOUT) && fuse_cfg.request_timeout) + { + outargflags |= FUSE_REQUEST_TIMEOUT; + outarg.request_timeout = fuse_cfg.request_timeout; + } + if(inargflags & FUSE_INIT_EXT) { outargflags |= FUSE_INIT_EXT;