diff --git a/[refs] b/[refs] index 3e43d88aef72..8b73871fe179 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 61a0d80ce4ab5b4fb9ecb38f1fb19654778b71ed +refs/heads/master: d0962936bff659d20522555b517582a2715fd23f diff --git a/trunk/drivers/md/md.c b/trunk/drivers/md/md.c index 26591cc8ee87..21a90efb13b7 100644 --- a/trunk/drivers/md/md.c +++ b/trunk/drivers/md/md.c @@ -1805,13 +1805,13 @@ static void super_1_sync(struct mddev *mddev, struct md_rdev *rdev) | BB_LEN(internal_bb)); *bbp++ = cpu_to_le64(store_bb); } + bb->changed = 0; if (read_seqretry(&bb->lock, seq)) goto retry; bb->sector = (rdev->sb_start + (int)le32_to_cpu(sb->bblog_offset)); bb->size = le16_to_cpu(sb->bblog_size); - bb->changed = 0; } } @@ -2366,6 +2366,7 @@ static void md_update_sb(struct mddev * mddev, int force_change) clear_bit(MD_CHANGE_PENDING, &mddev->flags); rdev_for_each(rdev, mddev) { if (rdev->badblocks.changed) { + rdev->badblocks.changed = 0; md_ack_all_badblocks(&rdev->badblocks); md_error(mddev, rdev); }