diff options
author | Maxim Patlasov <mpatlasov@parallels.com> | 2012-10-26 11:49:24 -0400 |
---|---|---|
committer | Miklos Szeredi <mszeredi@suse.cz> | 2013-01-24 10:21:27 -0500 |
commit | b2430d7567a376b3685627ca7e9d712f6f27d49b (patch) | |
tree | 2c59795b27e57f6a0a6c15d0f8aea3aac32f8317 /fs/fuse/fuse_i.h | |
parent | 54b966702dafe396b6f4e609f222b8e0fdb4d7a4 (diff) |
fuse: add per-page descriptor <offset, length> to fuse_req
The ability to save page pointers along with lengths and offsets in fuse_req
will be useful to cover several iovec-s with a single fuse_req.
Per-request page_offset is removed because anybody who need it can use
req->page_descs[0].offset instead.
Signed-off-by: Maxim Patlasov <mpatlasov@parallels.com>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Diffstat (limited to 'fs/fuse/fuse_i.h')
-rw-r--r-- | fs/fuse/fuse_i.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h index 5b21e6ab9e75..70cef60afe0e 100644 --- a/fs/fuse/fuse_i.h +++ b/fs/fuse/fuse_i.h | |||
@@ -203,6 +203,12 @@ struct fuse_out { | |||
203 | struct fuse_arg args[3]; | 203 | struct fuse_arg args[3]; |
204 | }; | 204 | }; |
205 | 205 | ||
206 | /** FUSE page descriptor */ | ||
207 | struct fuse_page_desc { | ||
208 | unsigned int length; | ||
209 | unsigned int offset; | ||
210 | }; | ||
211 | |||
206 | /** The request state */ | 212 | /** The request state */ |
207 | enum fuse_req_state { | 213 | enum fuse_req_state { |
208 | FUSE_REQ_INIT = 0, | 214 | FUSE_REQ_INIT = 0, |
@@ -296,18 +302,21 @@ struct fuse_req { | |||
296 | /** page vector */ | 302 | /** page vector */ |
297 | struct page **pages; | 303 | struct page **pages; |
298 | 304 | ||
305 | /** page-descriptor vector */ | ||
306 | struct fuse_page_desc *page_descs; | ||
307 | |||
299 | /** size of the 'pages' array */ | 308 | /** size of the 'pages' array */ |
300 | unsigned max_pages; | 309 | unsigned max_pages; |
301 | 310 | ||
302 | /** inline page vector */ | 311 | /** inline page vector */ |
303 | struct page *inline_pages[FUSE_REQ_INLINE_PAGES]; | 312 | struct page *inline_pages[FUSE_REQ_INLINE_PAGES]; |
304 | 313 | ||
314 | /** inline page-descriptor vector */ | ||
315 | struct fuse_page_desc inline_page_descs[FUSE_REQ_INLINE_PAGES]; | ||
316 | |||
305 | /** number of pages in vector */ | 317 | /** number of pages in vector */ |
306 | unsigned num_pages; | 318 | unsigned num_pages; |
307 | 319 | ||
308 | /** offset of data on first page */ | ||
309 | unsigned page_offset; | ||
310 | |||
311 | /** File used in the request (or NULL) */ | 320 | /** File used in the request (or NULL) */ |
312 | struct fuse_file *ff; | 321 | struct fuse_file *ff; |
313 | 322 | ||