md/raid5: be more thorough in calculating 'degraded' value.
authorNeilBrown <neilb@suse.de>
Thu, 22 Dec 2011 23:17:50 +0000 (10:17 +1100)
committerNeilBrown <neilb@suse.de>
Thu, 22 Dec 2011 23:17:50 +0000 (10:17 +1100)
commit908f4fbd265733310c17ecc906299846b5dac44a
tree71e364c57887213431143e6fd1296e8433cc6293
parent2e61ebbcc45438899235d7a39f17291cb24e746c
md/raid5: be more thorough in calculating 'degraded' value.

When an array is being reshaped to change the number of devices,
the two halves can be differently degraded.  e.g. one could be
missing a device and the other not.

So we need to be more careful about calculating the 'degraded'
attribute.

Instead of just inc/dec at appropriate times, perform a full
re-calculation examining both possible cases.  This doesn't happen
often so it not a big cost, and we already have most of the code to
do it.

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