From: Guoqing Jiang Date: Mon, 9 Apr 2018 09:01:21 +0000 (+0800) Subject: md-cluster: don't update recovery_offset for faulty device X-Git-Tag: v4.17-rc2~17^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0ea9924abe125a0c1277484f1a3d512b3f45c320;p=thirdparty%2Fkernel%2Flinux.git md-cluster: don't update recovery_offset for faulty device Device could become faulty when clustered array handling METADATA_UPDATED msg, so we don't need to call read_rdev for this device. Signed-off-by: Guoqing Jiang Signed-off-by: Shaohua Li --- diff --git a/drivers/md/md.c b/drivers/md/md.c index 3bea45e8ccff1..c208c01f63a5a 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -9256,8 +9256,10 @@ void md_reload_sb(struct mddev *mddev, int nr) check_sb_changes(mddev, rdev); /* Read all rdev's to update recovery_offset */ - rdev_for_each_rcu(rdev, mddev) - read_rdev(mddev, rdev); + rdev_for_each_rcu(rdev, mddev) { + if (!test_bit(Faulty, &rdev->flags)) + read_rdev(mddev, rdev); + } } EXPORT_SYMBOL(md_reload_sb);