aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/raid5.h
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2009-03-31 00:16:46 -0400
committerNeilBrown <neilb@suse.de>2009-03-31 00:16:46 -0400
commitfef9c61fdfabf97a307c2cf3621a6949f0a4b995 (patch)
tree82b128341c12205db62fe092d692d32103a7ea9f /drivers/md/raid5.h
parentcea9c22800773cecb1d41f4a6139f9eb6a95368b (diff)
md/raid5: change reshape-progress measurement to cope with reshaping backwards.
When reducing the number of devices in a raid4/5/6, the reshape process has to start at the end of the array and work down to the beginning. So we need to handle expand_progress and expand_lo differently. This patch renames "expand_progress" and "expand_lo" to avoid the implication that anything is getting bigger (expand->reshape) and every place they are used, we make sure that they are used the right way depending on whether delta_disks is positive or negative. Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers/md/raid5.h')
-rw-r--r--drivers/md/raid5.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/drivers/md/raid5.h b/drivers/md/raid5.h
index c2f37f25ef44..b2edcc434e41 100644
--- a/drivers/md/raid5.h
+++ b/drivers/md/raid5.h
@@ -337,11 +337,16 @@ struct raid5_private_data {
337 int raid_disks; 337 int raid_disks;
338 int max_nr_stripes; 338 int max_nr_stripes;
339 339
340 /* used during an expand */ 340 /* reshape_progress is the leading edge of a 'reshape'
341 sector_t expand_progress; /* MaxSector when no expand happening */ 341 * It has value MaxSector when no reshape is happening
342 sector_t expand_lo; /* from here up to expand_progress it out-of-bounds 342 * If delta_disks < 0, it is the last sector we started work on,
343 * as we haven't flushed the metadata yet 343 * else is it the next sector to work on.
344 */ 344 */
345 sector_t reshape_progress;
346 /* reshape_safe is the trailing edge of a reshape. We know that
347 * before (or after) this address, all reshape has completed.
348 */
349 sector_t reshape_safe;
345 int previous_raid_disks; 350 int previous_raid_disks;
346 351
347 struct list_head handle_list; /* stripes needing handling */ 352 struct list_head handle_list; /* stripes needing handling */