From dc436101370e0ab2ea4d3a2a3454711ad7051ae8 Mon Sep 17 00:00:00 2001 From: Nikolaus Rath Date: Mon, 10 Oct 2016 15:52:15 -0700 Subject: do_init(): treat command line options consistently Previously, some command line options would change the FUSE defaults but leave the final value to the file systems `init` handler while others would override any changes made by `init`. Now, command line options do both: they modify the default, *and* take precedence. --- include/fuse_common.h | 7 +++++-- include/fuse_lowlevel.h | 9 ++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/fuse_common.h b/include/fuse_common.h index 4a0e94b..55f0de2 100644 --- a/include/fuse_common.h +++ b/include/fuse_common.h @@ -167,12 +167,15 @@ struct fuse_conn_info { unsigned max_readahead; /** - * Capability flags, that the kernel supports + * Capability flags that the kernel supports (read-only) */ unsigned capable; /** - * Capability flags, that the filesystem wants to enable + * Capability flags that the filesystem wants to enable. + * + * libfuse attempts to initialize this field with + * reasonable default values before calling the init() handler. */ unsigned want; diff --git a/include/fuse_lowlevel.h b/include/fuse_lowlevel.h index 63c59c9..bad1d45 100644 --- a/include/fuse_lowlevel.h +++ b/include/fuse_lowlevel.h @@ -165,7 +165,14 @@ struct fuse_lowlevel_ops { /** * Initialize filesystem * - * Called before any other filesystem method + * This function is called when libfuse establishes + * communication with the FUSE kernel module. The file system + * should use this module to inspect and/or modify the + * connection parameters provided in the `conn` structure. + * + * Note that some parameters may be overwritten by options + * passed to fuse_session_new() which take precedence over the + * values set in this handler. * * There's no reply to this function * -- cgit v1.2.3