aboutsummaryrefslogtreecommitdiff
path: root/kernel/fuse_i.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/fuse_i.h')
-rw-r--r--kernel/fuse_i.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/kernel/fuse_i.h b/kernel/fuse_i.h
index fdd4625..4b03990 100644
--- a/kernel/fuse_i.h
+++ b/kernel/fuse_i.h
@@ -65,6 +65,13 @@ permission checking is done in the kernel */
/** Bypass the page cache for read and write operations */
#define FUSE_DIRECT_IO (1 << 4)
+/** FUSE specific inode data */
+struct fuse_inode {
+ struct fuse_req *forget_req;
+ struct rw_semaphore write_sem;
+ unsigned long i_time;
+};
+
/** One input argument of a request */
struct fuse_in_arg {
unsigned int size;
@@ -223,7 +230,8 @@ struct fuse_getdir_out_i {
#define SB_FC(sb) ((sb)->u.generic_sbp)
#endif
#define INO_FC(inode) SB_FC((inode)->i_sb)
-#define DEV_FC(file) ((struct fuse_conn *) (file)->private_data)
+#define DEV_FC(file) ((file)->private_data)
+#define INO_FI(inode) ((inode)->u.generic_ip)
/**
@@ -293,6 +301,11 @@ struct fuse_req *fuse_request_alloc(void);
void fuse_request_free(struct fuse_req *req);
/**
+ * Reinitialize a request, the preallocated flag is left unmodified
+ */
+void fuse_reset_request(struct fuse_req *req);
+
+/**
* Reserve a preallocated request
*/
struct fuse_req *fuse_get_request(struct fuse_conn *fc);
@@ -333,6 +346,11 @@ int fuse_do_getattr(struct inode *inode);
*/
void fuse_sync_inode(struct inode *inode);
+/**
+ * Allocate fuse specific inode data
+ */
+struct fuse_inode *fuse_inode_alloc(void);
+
/*
* Local Variables:
* indent-tabs-mode: t