aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/fuse.h5
-rw-r--r--include/linux/fuse.h7
2 files changed, 10 insertions, 2 deletions
diff --git a/include/fuse.h b/include/fuse.h
index 719564e..59e0ed1 100644
--- a/include/fuse.h
+++ b/include/fuse.h
@@ -87,7 +87,9 @@ typedef int (*fuse_dirfil_t) (fuse_dirh_t h, const char *name, int type);
* 2) all memory mappings unmapped
* This call need only be implemented if this information is required,
* otherwise set this function to NULL.
- *
+ *
+ * - fsync() has a boolean 'datasync' parameter which if TRUE then do
+ * an fdatasync() operation.
*/
struct fuse_operations {
int (*getattr) (const char *, struct stat *);
@@ -109,6 +111,7 @@ struct fuse_operations {
int (*write) (const char *, const char *, size_t, off_t);
int (*statfs) (struct fuse_statfs *);
int (*release) (const char *, int);
+ int (*fsync) (const char *, int);
};
/** Extra context that may be needed by some filesystems */
diff --git a/include/linux/fuse.h b/include/linux/fuse.h
index 4be9a28..08ad214 100644
--- a/include/linux/fuse.h
+++ b/include/linux/fuse.h
@@ -103,7 +103,8 @@ enum fuse_opcode {
FUSE_WRITE = 16,
FUSE_STATFS = 17,
FUSE_RELEASE = 18, /* no reply */
- FUSE_INVALIDATE = 19 /* user initiated */
+ FUSE_INVALIDATE = 19, /* user initiated */
+ FUSE_FSYNC = 20
};
/* Conservative buffer size for the client */
@@ -176,6 +177,10 @@ struct fuse_statfs_out {
struct fuse_kstatfs st;
};
+struct fuse_fsync_in {
+ int datasync;
+};
+
struct fuse_in_header {
int unique;
enum fuse_opcode opcode;