diff options
Diffstat (limited to 'drivers/md')
-rw-r--r-- | drivers/md/md.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c index 26591cc8ee87..21a90efb13b7 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c | |||
@@ -1805,13 +1805,13 @@ retry: | |||
1805 | | BB_LEN(internal_bb)); | 1805 | | BB_LEN(internal_bb)); |
1806 | *bbp++ = cpu_to_le64(store_bb); | 1806 | *bbp++ = cpu_to_le64(store_bb); |
1807 | } | 1807 | } |
1808 | bb->changed = 0; | ||
1808 | if (read_seqretry(&bb->lock, seq)) | 1809 | if (read_seqretry(&bb->lock, seq)) |
1809 | goto retry; | 1810 | goto retry; |
1810 | 1811 | ||
1811 | bb->sector = (rdev->sb_start + | 1812 | bb->sector = (rdev->sb_start + |
1812 | (int)le32_to_cpu(sb->bblog_offset)); | 1813 | (int)le32_to_cpu(sb->bblog_offset)); |
1813 | bb->size = le16_to_cpu(sb->bblog_size); | 1814 | bb->size = le16_to_cpu(sb->bblog_size); |
1814 | bb->changed = 0; | ||
1815 | } | 1815 | } |
1816 | } | 1816 | } |
1817 | 1817 | ||
@@ -2366,6 +2366,7 @@ repeat: | |||
2366 | clear_bit(MD_CHANGE_PENDING, &mddev->flags); | 2366 | clear_bit(MD_CHANGE_PENDING, &mddev->flags); |
2367 | rdev_for_each(rdev, mddev) { | 2367 | rdev_for_each(rdev, mddev) { |
2368 | if (rdev->badblocks.changed) { | 2368 | if (rdev->badblocks.changed) { |
2369 | rdev->badblocks.changed = 0; | ||
2369 | md_ack_all_badblocks(&rdev->badblocks); | 2370 | md_ack_all_badblocks(&rdev->badblocks); |
2370 | md_error(mddev, rdev); | 2371 | md_error(mddev, rdev); |
2371 | } | 2372 | } |