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>
This commit is contained in:
@ -337,11 +337,16 @@ struct raid5_private_data {
|
||||
int raid_disks;
|
||||
int max_nr_stripes;
|
||||
|
||||
/* used during an expand */
|
||||
sector_t expand_progress; /* MaxSector when no expand happening */
|
||||
sector_t expand_lo; /* from here up to expand_progress it out-of-bounds
|
||||
* as we haven't flushed the metadata yet
|
||||
*/
|
||||
/* reshape_progress is the leading edge of a 'reshape'
|
||||
* It has value MaxSector when no reshape is happening
|
||||
* If delta_disks < 0, it is the last sector we started work on,
|
||||
* else is it the next sector to work on.
|
||||
*/
|
||||
sector_t reshape_progress;
|
||||
/* reshape_safe is the trailing edge of a reshape. We know that
|
||||
* before (or after) this address, all reshape has completed.
|
||||
*/
|
||||
sector_t reshape_safe;
|
||||
int previous_raid_disks;
|
||||
|
||||
struct list_head handle_list; /* stripes needing handling */
|
||||
|
Reference in New Issue
Block a user