diff options
author | Boaz Harrosh <bharrosh@panasas.com> | 2010-01-28 11:24:06 -0500 |
---|---|---|
committer | Boaz Harrosh <bharrosh@panasas.com> | 2010-02-28 06:44:42 -0500 |
commit | 86093aaff5be5b214613eb60553e236bdb389c84 (patch) | |
tree | 64993f3fff8b60408441e8912aa5690346108492 /fs/exofs/exofs.h | |
parent | 5d952b8391692553c31e620a92d6e09262a9a307 (diff) |
exofs: convert io_state to use pages array instead of bio at input
* inode.c operations are full-pages based, and not actually
true scatter-gather
* Lets us use more pages at once upto 512 (from 249) in 64 bit
* Brings us much much closer to be able to use exofs's io_state engine
from objlayout driver. (Once I decide where to put the common code)
After RAID0 patch the outer (input) bio was never used as a bio, but
was simply a page carrier into the raid engine. Even in the simple
mirror/single-dev arrangement pages info was copied into a second bio.
It is now easer to just pass a pages array into the io_state and prepare
bio(s) once.
Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
Diffstat (limited to 'fs/exofs/exofs.h')
-rw-r--r-- | fs/exofs/exofs.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/exofs/exofs.h b/fs/exofs/exofs.h index 0d8a34b21ae1..acfebd36de83 100644 --- a/fs/exofs/exofs.h +++ b/fs/exofs/exofs.h | |||
@@ -128,7 +128,10 @@ struct exofs_io_state { | |||
128 | loff_t offset; | 128 | loff_t offset; |
129 | unsigned long length; | 129 | unsigned long length; |
130 | void *kern_buff; | 130 | void *kern_buff; |
131 | struct bio *bio; | 131 | |
132 | struct page **pages; | ||
133 | unsigned nr_pages; | ||
134 | unsigned pgbase; | ||
132 | 135 | ||
133 | /* Attributes */ | 136 | /* Attributes */ |
134 | unsigned in_attr_len; | 137 | unsigned in_attr_len; |