md/raid5: Allow dirty-degraded arrays to be assembled when only party is degraded.
authorNeilBrown <neilb@suse.de>
Fri, 13 Nov 2009 06:47:00 +0000 (17:47 +1100)
committerNeilBrown <neilb@suse.de>
Fri, 13 Nov 2009 06:47:00 +0000 (17:47 +1100)
commitc148ffdcda00b6599b70f8b65e6a1fadd1dbb127
tree3d50cc9dbef926f62a588dc1f45f1df304e1bf31
parent7ef90146a14c2bb1de2e22399f147ebec5b74f0b
md/raid5: Allow dirty-degraded arrays to be assembled when only party is degraded.

Normally is it not safe to allow a raid5 that is both dirty and
degraded to be assembled without explicit request from that admin, as
it can cause hidden data corruption.
This is because 'dirty' means that the parity cannot be trusted, and
'degraded' means that the parity needs to be used.

However, if the device that is missing contains only parity, then
there is no issue and assembly can continue.
This particularly applies when a RAID5 is being converted to a RAID6
and there is an unclean shutdown while the conversion is happening.

So check for whether the degraded space only contains parity, and
in that case, allow the assembly.

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