exofs: groups support
* _calc_stripe_info() changes to accommodate for grouping
calculations. Returns additional information
* old _prepare_pages() becomes _prepare_one_group()
which stores pages belonging to one device group.
* New _prepare_for_striping iterates on all groups calling
_prepare_one_group().
* Enable mounting of groups data_maps (group_width != 0)
[QUESTION]
what is faster A or B;
A. x += stride;
x = x % width + first_x;
B x += stride
if (x < last_x)
x = first_x;
Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
diff --git a/fs/exofs/exofs.h b/fs/exofs/exofs.h
index acfebd3..59b8bf2 100644
--- a/fs/exofs/exofs.h
+++ b/fs/exofs/exofs.h
@@ -63,6 +63,8 @@
unsigned mirrors_p1;
unsigned group_width;
+ u64 group_depth;
+ unsigned group_count;
enum exofs_inode_layout_gen_functions lay_func;
@@ -132,6 +134,7 @@
struct page **pages;
unsigned nr_pages;
unsigned pgbase;
+ unsigned pages_consumed;
/* Attributes */
unsigned in_attr_len;