aboutsummaryrefslogtreecommitdiff
path: root/kernel/fuse_i.h
diff options
context:
space:
mode:
authorGravatar Miklos Szeredi <miklos@szeredi.hu>2004-07-20 14:22:26 +0000
committerGravatar Miklos Szeredi <miklos@szeredi.hu>2004-07-20 14:22:26 +0000
commit588653700e52d72c47c5d5915fc2143db6029474 (patch)
tree8453e809f8145b5114dc10b43a218fdb8d944e97 /kernel/fuse_i.h
parent84ba0f45c2e306df8bcf1c1b0b86cb01852b6efb (diff)
optimize reading
Diffstat (limited to 'kernel/fuse_i.h')
-rw-r--r--kernel/fuse_i.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/kernel/fuse_i.h b/kernel/fuse_i.h
index 4b03990..2b165e9 100644
--- a/kernel/fuse_i.h
+++ b/kernel/fuse_i.h
@@ -43,6 +43,8 @@
#define FUSE_BLOCK_PAGE_SHIFT (FUSE_BLOCK_SHIFT - PAGE_CACHE_SHIFT)
+#define FUSE_MAX_PAGES_PER_REQ 32
+
/** If the FUSE_DEFAULT_PERMISSIONS flag is given, the filesystem
module will check permissions based on the file mode. Otherwise no
permission checking is done in the kernel */
@@ -103,6 +105,7 @@ struct fuse_req;
struct fuse_conn;
typedef void (*fuse_reqend_t)(struct fuse_conn *, struct fuse_req *);
+typedef int (*fuse_copyout_t)(struct fuse_req *, const char *, size_t);
/**
* A request to the client
@@ -141,6 +144,9 @@ struct fuse_req {
/** Request completion callback */
fuse_reqend_t end;
+ /** Request copy out function */
+ fuse_copyout_t copy_out;
+
/** User data */
void *data;
@@ -151,9 +157,13 @@ struct fuse_req {
struct fuse_write_out out;
} write;
+ struct fuse_read_in read_in;
struct fuse_open_in open_in;
struct fuse_forget_in forget_in;
} misc;
+
+ struct page *pages[FUSE_MAX_PAGES_PER_REQ];
+ unsigned num_pages;
};
/**