]> git.baikalelectronics.ru Git - kernel.git/commit
md/raid10: avoid reading from known bad blocks - part 1
authorNeilBrown <neilb@suse.de>
Thu, 28 Jul 2011 01:39:23 +0000 (11:39 +1000)
committerNeilBrown <neilb@suse.de>
Thu, 28 Jul 2011 01:39:23 +0000 (11:39 +1000)
commit671540edb5180c6d1567d430b06d9a7b3374b481
treefa9977a39da542eebb2129712703c11009a56ff2
parent9ab10262f15c395c53f18d4fa2fbcd8630a129bc
md/raid10: avoid reading from known bad blocks - part 1

This patch just covers the basic read path:
 1/ read_balance needs to check for badblocks, and return not only
    the chosen slot, but also how many good blocks are available
    there.
 2/ read submission must be ready to issue multiple reads to
    different devices as different bad blocks on different devices
    could mean that a single large read cannot be served by any one
    device, but can still be served by the array.
    This requires keeping count of the number of outstanding requests
    per bio.  This count is stored in 'bi_phys_segments'

On read error we currently just fail the request if another target
cannot handle the whole request.  Next patch refines that a bit.

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