aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Kondik <shade@chemlab.org>2013-08-19 22:08:18 -0700
committerSteve Kondik <shade@chemlab.org>2013-08-19 22:08:18 -0700
commitbd2157b66496f90b7817fecc33539a3c442e49e9 (patch)
tree7d21b9f06a12f98e87bbbb996e67030c4c221fc6
parentcc7afb6acff7beb70b41a607960f5449e893a100 (diff)
downloadandroid_external_fuse-bd2157b66496f90b7817fecc33539a3c442e49e9.tar.gz
android_external_fuse-bd2157b66496f90b7817fecc33539a3c442e49e9.tar.bz2
android_external_fuse-bd2157b66496f90b7817fecc33539a3c442e49e9.zip
Change-Id: Ibbd06ba24020bbad4959e298c5c1a595781c579c
-rwxr-xr-xlib/Android.mk2
-rw-r--r--lib/fuse.c21
2 files changed, 20 insertions, 3 deletions
diff --git a/lib/Android.mk b/lib/Android.mk
index bf3712f..ba06023 100755
--- a/lib/Android.mk
+++ b/lib/Android.mk
@@ -38,7 +38,7 @@ LOCAL_C_INCLUDES := \
external/fuse/include
LOCAL_SHARED_LIBRARIES := \
- libutils libdl
+ libutils
LOCAL_CFLAGS := \
-D_FILE_OFFSET_BITS=64 \
diff --git a/lib/fuse.c b/lib/fuse.c
index e456515..913f190 100644
--- a/lib/fuse.c
+++ b/lib/fuse.c
@@ -30,7 +30,6 @@
#include <limits.h>
#include <errno.h>
#include <signal.h>
-#include <dlfcn.h>
#include <assert.h>
#include <poll.h>
#include <sys/param.h>
@@ -38,6 +37,10 @@
#include <sys/time.h>
#include <sys/mman.h>
+#ifdef USE_MODULES
+#include <dlfcn.h>
+#endif
+
#define FUSE_NODE_SLAB 1
#ifndef MAP_ANONYMOUS
@@ -221,6 +224,8 @@ struct fuse_context_i {
static pthread_key_t fuse_context_key;
static pthread_mutex_t fuse_context_lock = PTHREAD_MUTEX_INITIALIZER;
static int fuse_context_ref;
+
+#ifdef USE_MODULES
static struct fusemod_so *fuse_current_so;
static struct fuse_module *fuse_modules;
@@ -319,6 +324,7 @@ static void fuse_put_module(struct fuse_module *m)
}
pthread_mutex_unlock(&fuse_context_lock);
}
+#endif
static void init_list_head(struct list_head *list)
{
@@ -2610,8 +2616,10 @@ void fuse_fs_destroy(struct fuse_fs *fs)
fuse_get_context()->private_data = fs->user_data;
if (fs->op.destroy)
fs->op.destroy(fs->user_data);
+#ifdef USE_MODULES
if (fs->m)
fuse_put_module(fs->m);
+#endif
free(fs);
}
@@ -4424,6 +4432,7 @@ static void fuse_lib_help(void)
"\n", FUSE_DEFAULT_INTR_SIGNAL);
}
+#ifdef USE_MODULES
static void fuse_lib_help_modules(void)
{
struct fuse_module *m;
@@ -4443,6 +4452,7 @@ static void fuse_lib_help_modules(void)
}
pthread_mutex_unlock(&fuse_context_lock);
}
+#endif
static int fuse_lib_opt_proc(void *data, const char *arg, int key,
struct fuse_args *outargs)
@@ -4498,7 +4508,7 @@ static void fuse_restore_intr_signal(int signum)
sigaction(signum, &sa, NULL);
}
-
+#ifdef USE_MODULES
static int fuse_push_module(struct fuse *f, const char *module,
struct fuse_args *args)
{
@@ -4521,6 +4531,7 @@ static int fuse_push_module(struct fuse *f, const char *module,
f->utime_omit_ok = newfs->op.flag_utime_omit_ok && f->utime_omit_ok;
return 0;
}
+#endif
struct fuse_fs *fuse_fs_new(const struct fuse_operations *op, size_t op_size,
void *user_data)
@@ -4659,6 +4670,7 @@ struct fuse *fuse_new_common(struct fuse_chan *ch, struct fuse_args *args,
fuse_lib_opt_proc) == -1)
goto out_free_fs;
+#ifdef USE_MODULES
if (f->conf.modules) {
char *module;
char *next;
@@ -4673,6 +4685,7 @@ struct fuse *fuse_new_common(struct fuse_chan *ch, struct fuse_args *args,
goto out_free_fs;
}
}
+#endif
if (!f->conf.ac_attr_timeout_set)
f->conf.ac_attr_timeout = f->conf.attr_timeout;
@@ -4692,8 +4705,10 @@ struct fuse *fuse_new_common(struct fuse_chan *ch, struct fuse_args *args,
f->se = fuse_lowlevel_new_common(args, &llop, sizeof(llop), f);
if (f->se == NULL) {
+#ifdef USE_MODULES
if (f->conf.help)
fuse_lib_help_modules();
+#endif
goto out_free_fs;
}
@@ -4834,6 +4849,7 @@ static struct fuse *fuse_new_common_compat25(int fd, struct fuse_args *args,
return f;
}
+#ifdef USE_MODULES
/* called with fuse_context_lock held or during initialization (before
main() has been called) */
void fuse_register_module(struct fuse_module *mod)
@@ -4845,6 +4861,7 @@ void fuse_register_module(struct fuse_module *mod)
mod->next = fuse_modules;
fuse_modules = mod;
}
+#endif
#if !defined(__FreeBSD__) && !defined(__NetBSD__)