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.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/kernel/fuse_i.h b/kernel/fuse_i.h
index a667176..f2e55d4 100644
--- a/kernel/fuse_i.h
+++ b/kernel/fuse_i.h
@@ -103,6 +103,10 @@ struct fuse_out {
#define FUSE_IN_INIT { {0, 0, 0, current->fsuid, current->fsgid}, 0}
#define FUSE_OUT_INIT { {0, 0}, 0, 0}
+struct fuse_req;
+typedef void (*fuse_reqend_t)(struct fuse_conn *, struct fuse_in *,
+ struct fuse_out *, void *data);
+
/**
* A request to the client
*/
@@ -133,6 +137,12 @@ struct fuse_req {
/** Used to wake up the task waiting for completion of request*/
wait_queue_head_t waitq;
+
+ /** Request completion callback */
+ fuse_reqend_t end;
+
+ /** User data */
+ void *data;
};
#ifdef KERNEL_2_6
@@ -205,6 +215,13 @@ void request_send(struct fuse_conn *fc, struct fuse_in *in,
*/
int request_send_noreply(struct fuse_conn *fc, struct fuse_in *in);
+
+/**
+ * Send a synchronous request without blocking
+ */
+int request_send_nonblock(struct fuse_conn *fc, struct fuse_in *in,
+ struct fuse_out *out, fuse_reqend_t end, void *data);
+
/**
* Get the attributes of a file
*/