diff options
author | Miklos Szeredi <miklos@szeredi.hu> | 2004-07-20 14:22:26 +0000 |
---|---|---|
committer | Miklos Szeredi <miklos@szeredi.hu> | 2004-07-20 14:22:26 +0000 |
commit | 588653700e52d72c47c5d5915fc2143db6029474 (patch) | |
tree | 8453e809f8145b5114dc10b43a218fdb8d944e97 /kernel/fuse_i.h | |
parent | 84ba0f45c2e306df8bcf1c1b0b86cb01852b6efb (diff) |
optimize reading
Diffstat (limited to 'kernel/fuse_i.h')
-rw-r--r-- | kernel/fuse_i.h | 10 |
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; }; /** |