diff options
author | NeilBrown <neilb@suse.de> | 2012-05-21 09:27:01 +1000 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2012-05-21 09:27:01 +1000 |
commit | b5254dd5fdd9abcacadb5101beb35df9ae8cc564 (patch) | |
tree | 73d32b8dd7c0dc9ecfe61468965b06741070dee7 /drivers/md/raid5.h | |
parent | 05616be5e11f66888b66554957dbecdd90658a84 (diff) | |
download | lwn-b5254dd5fdd9abcacadb5101beb35df9ae8cc564.tar.gz lwn-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.h | 6 |
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 */ |