From 0c3fbe2ce24bdc79a2bbd8691f0f2cd9a383242b Mon Sep 17 00:00:00 2001 From: Nikolaus Rath Date: Thu, 8 Sep 2022 11:02:45 +0100 Subject: Released 3.12.0 --- AUTHORS | 3 +++ ChangeLog.rst | 72 +++++++++++++++++------------------------------------------ 2 files changed, 23 insertions(+), 52 deletions(-) diff --git a/AUTHORS b/AUTHORS index a708165..d0c1f74 100644 --- a/AUTHORS +++ b/AUTHORS @@ -43,6 +43,7 @@ AsumFace Banglang Baptiste Daroussin Benjamin Barenblat +Bernd Schubert Bernd Schubert Bill Zissimooulos Bill Zissimopoulos @@ -83,6 +84,7 @@ Fedor Korotkov Feng Shuo ferivoz <72023087+ferivoz@users.noreply.github.com> Feverfew +Fina Wilke Florian Weimer Forty-Bot Frank Dinoff @@ -148,6 +150,7 @@ mkmm@gmx-topmail.de Natanael Copa Niels de Vos Nikolaus Rath +Nozomi Miyamori <99280467+nm004@users.noreply.github.com> Oded Arbel Olivier Blin pablomh diff --git a/ChangeLog.rst b/ChangeLog.rst index 08df4a8..5c2ec39 100644 --- a/ChangeLog.rst +++ b/ChangeLog.rst @@ -1,56 +1,24 @@ -libfuse 3.12.0 () +libfuse 3.12.0 (2022-09-08) =========================== -* The 'max_idle_threads' parameter has performance implication - due to run time thread creation and destruction per request - and it is deprecated in favor of the new max_threads parameter. - - * API changes: - In order to avoid future version symboling and also to - allow to set fuse_loop_config defaults an API change has been - introduced beginning with API version (FUSE_USE_VERSION) 312. - 'struct fuse_loop_config' is now private and has to be - constructed using fuse_loop_cfg_create(). Besides allocating - memory this function also sets struct member default. - Desctruction (free) is done through fuse_loop_cfg_destroy(). - Struct parameters can be changed using fuse_loop_cfg_set_*() - functions. - New functions regarding the fuse-loop configuration are: - fuse_loop_cfg_create - fuse_loop_cfg_destroy - fuse_loop_cfg_set_idle_threads - fuse_loop_cfg_set_max_threads - fuse_loop_cfg_set_clone_fd - fuse_loop_cfg_convert (internal for API/ABI compatibility) - Functions details can be found in fuse_common.h - - In API version 312 the fuse_session_loop_mt() function now - also accepts struct fuse_loop_config * as NULL pointer and - uses defaults then. - - * Users of fuse_parse_cmdline() get the new option - 'max_threads' with API version 312. - - * File system conversion help: - - See example/passthrough_hp.cc - - #define FUSE_USE_VERSION FUSE_MAKE_VERSION(3, 12) - - ... - main(int argc, char *argv[]) - ... - struct fuse_loop_config *loop_config; - ... - loop_config = fuse_loop_cfg_create(); - ... - ret = fuse_session_loop_mt(se, loop_config); - ... - fuse_loop_cfg_destroy(loop_config); - - * Further notes: - Using max_threads == 1 and calling fuse_session_loop_mt() works, - it will run single threaded similar to fuse_session_loop(). In - fact, fuse_session_loop() might get deprecated in future - versions. + +* There is a new build parameter to specify where the SysV init script should be + installed. + +* The *max_idle_threads* parameter has been deprecated in favor of the new max_threads* + parameter (which avoids the excessive overhead of creating and destructing threads). + Using max_threads == 1 and calling fuse_session_loop_mt() will run single threaded + similar to fuse_session_loop(). + +The following changes apply when using the most recent API (-DFUSE_USE_VERSION=312, +see `example/passthrough_hp.cc` for an example for how to usse the new API): + +* `struct fuse_loop_config` is now private and has to be constructed using + *fuse_loop_cfg_create()* and detroyed with *fuse_loop_cfg_destroy()*. Parameters can be + changed using `fuse_loop_cfg_set_*()` functions. + +* *fuse_session_loop_mt()* now accepts `struct fuse_loop_config *` as NULL pointer. + +* *fuse_parse_cmdline()* now accepts a *max_threads* option. libfuse 3.11.0 (2022-05-02) -- cgit v1.2.1