|
@@ -4085,10 +4085,15 @@ static void handle_parity_checks5(struct r5conf *conf, struct stripe_head *sh,
|
|
set_bit(STRIPE_INSYNC, &sh->state);
|
|
set_bit(STRIPE_INSYNC, &sh->state);
|
|
else {
|
|
else {
|
|
atomic64_add(STRIPE_SECTORS, &conf->mddev->resync_mismatches);
|
|
atomic64_add(STRIPE_SECTORS, &conf->mddev->resync_mismatches);
|
|
- if (test_bit(MD_RECOVERY_CHECK, &conf->mddev->recovery))
|
|
|
|
|
|
+ if (test_bit(MD_RECOVERY_CHECK, &conf->mddev->recovery)) {
|
|
/* don't try to repair!! */
|
|
/* don't try to repair!! */
|
|
set_bit(STRIPE_INSYNC, &sh->state);
|
|
set_bit(STRIPE_INSYNC, &sh->state);
|
|
- else {
|
|
|
|
|
|
+ pr_warn_ratelimited("%s: mismatch sector in range "
|
|
|
|
+ "%llu-%llu\n", mdname(conf->mddev),
|
|
|
|
+ (unsigned long long) sh->sector,
|
|
|
|
+ (unsigned long long) sh->sector +
|
|
|
|
+ STRIPE_SECTORS);
|
|
|
|
+ } else {
|
|
sh->check_state = check_state_compute_run;
|
|
sh->check_state = check_state_compute_run;
|
|
set_bit(STRIPE_COMPUTE_RUN, &sh->state);
|
|
set_bit(STRIPE_COMPUTE_RUN, &sh->state);
|
|
set_bit(STRIPE_OP_COMPUTE_BLK, &s->ops_request);
|
|
set_bit(STRIPE_OP_COMPUTE_BLK, &s->ops_request);
|
|
@@ -4237,10 +4242,15 @@ static void handle_parity_checks6(struct r5conf *conf, struct stripe_head *sh,
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
atomic64_add(STRIPE_SECTORS, &conf->mddev->resync_mismatches);
|
|
atomic64_add(STRIPE_SECTORS, &conf->mddev->resync_mismatches);
|
|
- if (test_bit(MD_RECOVERY_CHECK, &conf->mddev->recovery))
|
|
|
|
|
|
+ if (test_bit(MD_RECOVERY_CHECK, &conf->mddev->recovery)) {
|
|
/* don't try to repair!! */
|
|
/* don't try to repair!! */
|
|
set_bit(STRIPE_INSYNC, &sh->state);
|
|
set_bit(STRIPE_INSYNC, &sh->state);
|
|
- else {
|
|
|
|
|
|
+ pr_warn_ratelimited("%s: mismatch sector in range "
|
|
|
|
+ "%llu-%llu\n", mdname(conf->mddev),
|
|
|
|
+ (unsigned long long) sh->sector,
|
|
|
|
+ (unsigned long long) sh->sector +
|
|
|
|
+ STRIPE_SECTORS);
|
|
|
|
+ } else {
|
|
int *target = &sh->ops.target;
|
|
int *target = &sh->ops.target;
|
|
|
|
|
|
sh->ops.target = -1;
|
|
sh->ops.target = -1;
|