|
@@ -606,6 +606,12 @@ static void ops_run_io(struct stripe_head *sh, struct stripe_head_state *s)
|
|
* a chance*/
|
|
* a chance*/
|
|
md_check_recovery(conf->mddev);
|
|
md_check_recovery(conf->mddev);
|
|
}
|
|
}
|
|
|
|
+ /*
|
|
|
|
+ * Because md_wait_for_blocked_rdev
|
|
|
|
+ * will dec nr_pending, we must
|
|
|
|
+ * increment it first.
|
|
|
|
+ */
|
|
|
|
+ atomic_inc(&rdev->nr_pending);
|
|
md_wait_for_blocked_rdev(rdev, conf->mddev);
|
|
md_wait_for_blocked_rdev(rdev, conf->mddev);
|
|
} else {
|
|
} else {
|
|
/* Acknowledged bad block - skip the write */
|
|
/* Acknowledged bad block - skip the write */
|