aboutsummaryrefslogtreecommitdiffstats
path: root/lib/helper.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/helper.c')
-rw-r--r--lib/helper.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/lib/helper.c b/lib/helper.c
index 64ff7ad..fc6a6ee 100644
--- a/lib/helper.c
+++ b/lib/helper.c
@@ -283,6 +283,7 @@ int fuse_main_real(int argc, char *argv[], const struct fuse_operations *op,
struct fuse *fuse;
struct fuse_cmdline_opts opts;
int res;
+ struct fuse_loop_config *loop_config = NULL;
if (fuse_parse_cmdline(&args, &opts) != 0)
return 1;
@@ -338,13 +339,19 @@ int fuse_main_real(int argc, char *argv[], const struct fuse_operations *op,
if (opts.singlethread)
res = fuse_loop(fuse);
else {
- struct fuse_loop_config loop_config;
- loop_config.clone_fd = opts.clone_fd;
- loop_config.max_idle_threads = opts.max_idle_threads;
- res = fuse_loop_mt_32(fuse, &loop_config);
+ loop_config = fuse_loop_cfg_create();
+ if (loop_config == NULL) {
+ res = 7;
+ goto out3;
+ }
+
+ fuse_loop_cfg_set_clone_fd(loop_config, opts.clone_fd);
+
+ fuse_loop_cfg_set_idle_threads(loop_config, opts.max_idle_threads);
+ res = fuse_loop_mt(fuse, loop_config);
}
if (res)
- res = 7;
+ res = 8;
fuse_remove_signal_handlers(se);
out3:
@@ -352,6 +359,7 @@ out3:
out2:
fuse_destroy(fuse);
out1:
+ fuse_loop_cfg_destroy(loop_config);
free(opts.mountpoint);
fuse_opt_free_args(&args);
return res;