md: Fix handling of raid5 array which is being reshaped to fewer devices.
authorNeilBrown <neilb@suse.de>
Fri, 16 Oct 2009 05:35:30 +0000 (16:35 +1100)
committerNeilBrown <neilb@suse.de>
Fri, 16 Oct 2009 05:35:30 +0000 (16:35 +1100)
commit5e5e3e78ed9038b8f7112835d07084eefb9daa47
treeafcefac7c0dbafb71f09d90812eecb2c6e4bc766
parente4424fee1815f996dccd36be44d68ca160ec3e1b
md: Fix handling of raid5 array which is being reshaped to fewer devices.

When a raid5 (or raid6) array is being reshaped to have fewer devices,
conf->raid_disks is the latter and hence smaller number of devices.
However sometimes we want to use a number which is the total number of
currently required devices - the larger of the 'old' and 'new' sizes.
Before we implemented reducing the number of devices, this was always
'new' i.e. ->raid_disks.
Now we need max(raid_disks, previous_raid_disks) in those places.

This particularly affects assembling an array that was shutdown while
in the middle of a reshape to fewer devices.

md.c needs a similar fix when interpreting the md metadata.

Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/md.c
drivers/md/raid5.c