diff options
author | Nikolaus Rath <Nikolaus@rath.org> | 2016-10-18 21:02:32 -0700 |
---|---|---|
committer | Nikolaus Rath <Nikolaus@rath.org> | 2016-10-20 14:05:15 -0700 |
commit | 6c66dac9f229d0035f83ae63d9033e4f51d9c5c8 (patch) | |
tree | 381089385e33beb9dc6d3fadcd6fedf78a93f41a /lib | |
parent | bc02a2cda954151aa8cb1f47e143fb8dd4b8737e (diff) | |
download | libfuse-6c66dac9f229d0035f83ae63d9033e4f51d9c5c8.tar.gz |
Pass struct fuse_config to high-level init() handler.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/fuse.c | 34 | ||||
-rw-r--r-- | lib/modules/iconv.c | 5 | ||||
-rw-r--r-- | lib/modules/subdir.c | 5 |
3 files changed, 10 insertions, 34 deletions
@@ -57,33 +57,6 @@ #define NODE_TABLE_MIN_SIZE 8192 -struct fuse_config { - unsigned int uid; - unsigned int gid; - unsigned int umask; - double entry_timeout; - double negative_timeout; - double attr_timeout; - double ac_attr_timeout; - int ac_attr_timeout_set; - int remember; - int nopath; - int debug; - int hard_remove; - int use_ino; - int readdir_ino; - int set_mode; - int set_uid; - int set_gid; - int direct_io; - int kernel_cache; - int auto_cache; - int intr; - int intr_signal; - int show_help; - char *modules; -}; - struct fuse_fs { struct fuse_operations op; struct fuse_module *m; @@ -2478,7 +2451,8 @@ static void reply_entry(fuse_req_t req, const struct fuse_entry_param *e, reply_err(req, err); } -void fuse_fs_init(struct fuse_fs *fs, struct fuse_conn_info *conn) +void fuse_fs_init(struct fuse_fs *fs, struct fuse_conn_info *conn, + struct fuse_config *cfg) { fuse_get_context()->private_data = fs->user_data; if (!fs->op.write_buf) @@ -2488,7 +2462,7 @@ void fuse_fs_init(struct fuse_fs *fs, struct fuse_conn_info *conn) if (!fs->op.flock) conn->want &= ~FUSE_CAP_FLOCK_LOCKS; if (fs->op.init) - fs->user_data = fs->op.init(conn); + fs->user_data = fs->op.init(conn, cfg); } static void fuse_lib_init(void *data, struct fuse_conn_info *conn) @@ -2497,7 +2471,7 @@ static void fuse_lib_init(void *data, struct fuse_conn_info *conn) fuse_create_context(f); conn->want |= FUSE_CAP_EXPORT_SUPPORT; - fuse_fs_init(f->fs, conn); + fuse_fs_init(f->fs, conn, &f->conf); } void fuse_fs_destroy(struct fuse_fs *fs) diff --git a/lib/modules/iconv.c b/lib/modules/iconv.c index 41a072c..b0453be 100644 --- a/lib/modules/iconv.c +++ b/lib/modules/iconv.c @@ -556,10 +556,11 @@ static int iconv_bmap(const char *path, size_t blocksize, uint64_t *idx) return err; } -static void *iconv_init(struct fuse_conn_info *conn) +static void *iconv_init(struct fuse_conn_info *conn, + struct fuse_config *cfg) { struct iconv *ic = iconv_get(); - fuse_fs_init(ic->next, conn); + fuse_fs_init(ic->next, conn, cfg); return ic; } diff --git a/lib/modules/subdir.c b/lib/modules/subdir.c index c264fb4..708edf3 100644 --- a/lib/modules/subdir.c +++ b/lib/modules/subdir.c @@ -542,10 +542,11 @@ static int subdir_bmap(const char *path, size_t blocksize, uint64_t *idx) return err; } -static void *subdir_init(struct fuse_conn_info *conn) +static void *subdir_init(struct fuse_conn_info *conn, + struct fuse_config *cfg) { struct subdir *d = subdir_get(); - fuse_fs_init(d->next, conn); + fuse_fs_init(d->next, conn, cfg); return d; } |