summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--xlators/mount/fuse/src/fuse-bridge.c5
-rw-r--r--xlators/mount/fuse/src/fuse-extra.c18
2 files changed, 23 insertions, 0 deletions
diff --git a/xlators/mount/fuse/src/fuse-bridge.c b/xlators/mount/fuse/src/fuse-bridge.c
index bf872f33d..6947a156d 100644
--- a/xlators/mount/fuse/src/fuse-bridge.c
+++ b/xlators/mount/fuse/src/fuse-bridge.c
@@ -2639,6 +2639,11 @@ init (xlator_t *this_xl)
ret = fuse_opt_add_arg(&args, "-ononempty");
if (ret != -1)
ret = fuse_opt_add_arg(&args, "-odev");
+#ifdef HAVE_FUSE_VERSION_28
+ if (ret != -1)
+ ret = fuse_opt_add_arg(&args, "-obig_writes");
+#endif /* FUSE 2.8 */
+
#endif /* LINUX */
#endif /* ! DARWIN_OS */
diff --git a/xlators/mount/fuse/src/fuse-extra.c b/xlators/mount/fuse/src/fuse-extra.c
index 95bd0f3ad..422ff4b56 100644
--- a/xlators/mount/fuse/src/fuse-extra.c
+++ b/xlators/mount/fuse/src/fuse-extra.c
@@ -54,9 +54,12 @@ struct fuse_req {
struct fuse_req *prev;
};
+#ifdef HAVE_FUSE_VERSION_28
struct fuse_ll {
int debug;
int allow_root;
+ int atomic_o_trunc;
+ int big_writes;
struct fuse_lowlevel_ops op;
int got_init;
void *userdata;
@@ -67,6 +70,21 @@ struct fuse_ll {
pthread_mutex_t lock;
int got_destroy;
};
+#else
+struct fuse_ll {
+ int debug;
+ int allow_root;
+ struct fuse_lowlevel_ops op;
+ int got_init;
+ void *userdata;
+ uid_t owner;
+ struct fuse_conn_info conn;
+ struct fuse_req list;
+ struct fuse_req interrupts;
+ pthread_mutex_t lock;
+ int got_destroy;
+};
+#endif /* FUSE 2.8 */
struct fuse_out_header {
uint32_t len;