summaryrefslogtreecommitdiffstats
path: root/drivers/md/raid5.h
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2012-05-21 01:27:01 +0200
committerNeilBrown <neilb@suse.de>2012-05-21 01:27:01 +0200
commitb5254dd5fdd9abcacadb5101beb35df9ae8cc564 (patch)
tree73d32b8dd7c0dc9ecfe61468965b06741070dee7 /drivers/md/raid5.h
parentmd/raid5: Use correct data_offset for all IO. (diff)
downloadlinux-b5254dd5fdd9abcacadb5101beb35df9ae8cc564.tar.xz
linux-b5254dd5fdd9abcacadb5101beb35df9ae8cc564.zip
md/raid5: allow for change in data_offset while managing a reshape.
The important issue here is incorporating the different in data_offset into calculations concerning when we might need to over-write data that is still thought to be valid. To this end we find the minimum offset difference across all devices and add that where appropriate. Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers/md/raid5.h')
-rw-r--r--drivers/md/raid5.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/md/raid5.h b/drivers/md/raid5.h
index 8d8e13934a48..c6bdfa01d987 100644
--- a/drivers/md/raid5.h
+++ b/drivers/md/raid5.h
@@ -385,6 +385,12 @@ struct r5conf {
short generation; /* increments with every reshape */
unsigned long reshape_checkpoint; /* Time we last updated
* metadata */
+ long long min_offset_diff; /* minimum difference between
+ * data_offset and
+ * new_data_offset across all
+ * devices. May be negative,
+ * but is closest to zero.
+ */
struct list_head handle_list; /* stripes needing handling */
struct list_head hold_list; /* preread ready stripes */