summaryrefslogtreecommitdiffstats
path: root/xlators/mount/fuse/src/fuse-bridge.h
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/mount/fuse/src/fuse-bridge.h')
-rw-r--r--xlators/mount/fuse/src/fuse-bridge.h22
1 files changed, 15 insertions, 7 deletions
diff --git a/xlators/mount/fuse/src/fuse-bridge.h b/xlators/mount/fuse/src/fuse-bridge.h
index ea346c05f9e..08af454be63 100644
--- a/xlators/mount/fuse/src/fuse-bridge.h
+++ b/xlators/mount/fuse/src/fuse-bridge.h
@@ -110,8 +110,9 @@ struct fuse_private {
char *fuse_mountopts;
/* For fuse-reverse-validation */
- int revchan_in;
- int revchan_out;
+ struct list_head invalidate_list;
+ pthread_cond_t invalidate_cond;
+ pthread_mutex_t invalidate_mutex;
gf_boolean_t reverse_fuse_thread_started;
/* For communicating with separate mount thread. */
@@ -133,6 +134,18 @@ struct fuse_private {
};
typedef struct fuse_private fuse_private_t;
+#define INVAL_BUF_SIZE (sizeof (struct fuse_out_header) + \
+ max (sizeof (struct fuse_notify_inval_inode_out), \
+ sizeof (struct fuse_notify_inval_entry_out) + \
+ NAME_MAX + 1))
+
+
+struct fuse_invalidate_node {
+ char inval_buf[INVAL_BUF_SIZE];
+ struct list_head next;
+};
+typedef struct fuse_invalidate_node fuse_invalidate_node_t;
+
struct fuse_graph_switch_args {
xlator_t *this;
xlator_t *old_subvol;
@@ -140,11 +153,6 @@ struct fuse_graph_switch_args {
};
typedef struct fuse_graph_switch_args fuse_graph_switch_args_t;
-#define INVAL_BUF_SIZE (sizeof (struct fuse_out_header) + \
- max (sizeof (struct fuse_notify_inval_inode_out), \
- sizeof (struct fuse_notify_inval_entry_out) + \
- NAME_MAX + 1))
-
#define FUSE_EVENT_HISTORY_SIZE 1024
#define _FH_TO_FD(fh) ((fd_t *)(uintptr_t)(fh))