]> 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)
commit78ae43d5351458fd0e2c34744d21671d76cf0b3f
treefa9977a39da542eebb2129712703c11009a56ff2
parentb36ad1d9321e5773d58e5eb1cd8ad73733f030ce
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