]> git.baikalelectronics.ru Git - kernel.git/commit
md/raid10: Don't try to recovery unmatched (and unused) chunks.
authorNeilBrown <neilb@suse.de>
Tue, 3 Jul 2012 00:37:30 +0000 (10:37 +1000)
committerNeilBrown <neilb@suse.de>
Tue, 3 Jul 2012 00:37:30 +0000 (10:37 +1000)
commitda54e22e07ee62cf78b7a4db66d0d834d8cf82a9
tree4060ac0bb5a476696be56ae1d60b7242715baf46
parenta573b18ab0f77eec7e891a801d0976db71b60d63
md/raid10: Don't try to recovery unmatched (and unused) chunks.

If a RAID10 has an odd number of chunks - as might happen when there
are an odd number of devices - the last chunk has no pair and so is
not mirrored.  We don't store data there, but when recovering the last
device in an array we retry to recover that last chunk from a
non-existent location.  This results in an error, and the recovery
aborts.

When we get to that last chunk we should just stop - there is nothing
more to do anyway.

This bug has been present since the introduction of RAID10, so the
patch is appropriate for any -stable kernel.

Cc: stable@vger.kernel.org
Reported-by: Christian Balzer <chibi@gol.com>
Tested-by: Christian Balzer <chibi@gol.com>
Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/raid10.c