aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGravatar Nikolaus Rath <Nikolaus@rath.org>2016-10-18 21:02:32 -0700
committerGravatar Nikolaus Rath <Nikolaus@rath.org>2016-10-20 14:05:15 -0700
commit6c66dac9f229d0035f83ae63d9033e4f51d9c5c8 (patch)
tree381089385e33beb9dc6d3fadcd6fedf78a93f41a /lib
parentbc02a2cda954151aa8cb1f47e143fb8dd4b8737e (diff)
Pass struct fuse_config to high-level init() handler.
Diffstat (limited to 'lib')
-rw-r--r--lib/fuse.c34
-rw-r--r--lib/modules/iconv.c5
-rw-r--r--lib/modules/subdir.c5
3 files changed, 10 insertions, 34 deletions
diff --git a/lib/fuse.c b/lib/fuse.c
index 07e63d2..f469378 100644
--- a/lib/fuse.c
+++ b/lib/fuse.c
@@ -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;
}