]> git.baikalelectronics.ru Git - kernel.git/commit
md/raid10: fix the 'new' raid10 layout to work correctly.
authorNeilBrown <neilb@suse.com>
Thu, 22 Oct 2015 02:20:15 +0000 (13:20 +1100)
committerNeilBrown <neilb@suse.com>
Sat, 24 Oct 2015 05:24:25 +0000 (16:24 +1100)
commit30552329d6b7e0c856bce06efe87480e7fb8cb21
tree01b072a83736bae1455d7bb5743d271f91cd6325
parent5965c77ee4ef1592fb1973eca6b75b33cc740c41
md/raid10: fix the 'new' raid10 layout to work correctly.

In Linux 3.9 we introduce a new 'far' layout for RAID10 which was
supposed to rotate the replicas differently and so provide better
resilience.  In particular it could survive more combinations of 2
drive failures.

Unfortunately. due to a coding error, this some did what was wanted,
sometimes improved less than we hoped, and sometimes - in very
unlikely circumstances - put multiple replicas on the same device so
the redundancy was harmed.

No public user-space tool has created arrays using this layout so it
is very unlikely that zero-redundancy arrays actually exist.  Probably
no arrays using any form of the new layout exist.  But we cannot be
certain.

So use another bit in the 'layout' number and introduce a bug-fixed
version of the layout.
Also when assembling an array, if it has a zero-redundancy layout,
give a warning.

Reported-by: Heinz Mauelshagen <heinzm@redhat.com>
Signed-off-by: NeilBrown <neilb@suse.com>
drivers/md/raid10.c