浏览代码

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 <gqjiang@suse.com>
Signed-off-by: Shaohua Li <shli@fb.com>
Guoqing Jiang 7 年之前
父节点
当前提交
0ea9924abe
共有 1 个文件被更改,包括 4 次插入2 次删除
  1. 4 2
      drivers/md/md.c

+ 4 - 2
drivers/md/md.c

@@ -9256,8 +9256,10 @@ void md_reload_sb(struct mddev *mddev, int nr)
 	check_sb_changes(mddev, rdev);
 	check_sb_changes(mddev, rdev);
 
 
 	/* Read all rdev's to update recovery_offset */
 	/* 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);
 EXPORT_SYMBOL(md_reload_sb);