]> git.karo-electronics.de Git - karo-tx-linux.git/commit
MD RAID10: Improve redundancy for 'far' and 'offset' algorithms (part 2)
authorJonathan Brassow <jbrassow@redhat.com>
Mon, 17 Dec 2012 18:40:16 +0000 (12:40 -0600)
committerNeilBrown <neilb@suse.de>
Mon, 4 Feb 2013 22:24:36 +0000 (09:24 +1100)
commitbe7a0a002b070f86ba46ca448251735ed5cbdd21
tree3fb6b533266198533294da9b37a183909e9daee0
parentdb31311fcee3570e794f01252aee1f0af099bab7
MD RAID10: Improve redundancy for 'far' and 'offset' algorithms (part 2)

MD RAID10:  Improve redundancy for 'far' and 'offset' algorithms (part 2)

This patch addresses raid arrays that have a number of devices that cannot
be evenly divided by 'far_copies'.  (E.g. 5 devices, far_copies = 2)  This
case must be handled differently because it causes that last set to be of
a different size than the rest of the sets.  We must compute a new modulo
for this last set so that copied chunks are properly wrapped around.

Example use_far_sets=1, far_copies=2, near_copies=1, devices=5:
                "far" algorithm
        dev1 dev2 dev3 dev4 dev5
==== ==== ==== ==== ====
[ A   B ] [ C    D   E ]
        [ G   H ] [ I    J   K ]
                    ...
        [ B   A ] [ E    C   D ] --> nominal set of 2 and last set of 3
        [ H   G ] [ K    I   J ]     []'s show far/offset sets

Signed-off-by: Jonathan Brassow <jbrassow@redhat.com>
Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/raid10.c