md/raid10: fix FailFast test for wrong device
authorGuoqing Jiang <gqjiang@suse.com>
Tue, 13 Jun 2017 03:16:08 +0000 (11:16 +0800)
committerShaohua Li <shli@fb.com>
Fri, 16 Jun 2017 19:04:08 +0000 (12:04 -0700)
commit1cdd1257949c85c5ddff8313fe3b1e39c5bee8b8
tree2f3cc155916d857a49a6a3e6b3c08913061ea279
parentf9c79bc05a2a91f4fba8bfd653579e066714b1ec
md/raid10: fix FailFast test for wrong device

We need to test FailFast flag for replacement device here
since the set up for writing is for the replacement, so we
need fix it like:

- if (test_bit(FailFast, &conf->mirrors[d].rdev->flags))
+ if (test_bit(FailFast, &conf->mirrors[d].replacement->flags))

Since commit f90145f317ef ("md/raid10: add rcu protection
to rdev access in raid10_sync_request.") had added the rcu
protection for the part, so let's extend the range protected
by rcu and use rdev directly.

Fixes: 1919cbb ("md/raid10: add failfast handling for writes.")
Reviewed-by: NeilBrown <neilb@suse.com>
Signed-off-by: Guoqing Jiang <gqjiang@suse.com>
Signed-off-by: Shaohua Li <shli@fb.com>
drivers/md/raid10.c