Commit 52c64152 authored by NeilBrown's avatar NeilBrown

md: bad blocks shouldn't cause a Blocked status on a Faulty device.

Once a device is marked Faulty the badblocks - whether acknowledged or
not - become irrelevant.  So they shouldn't cause the device to be
marked as Blocked.

Without this patch, a process might write "-blocked" to clear the
Blocked status, but while that will correctly fail the device, it
won't remove the apparent 'blocked' status.
Signed-off-by: default avatarNeilBrown <neilb@suse.de>
parent af8a2434
...@@ -2546,7 +2546,8 @@ state_show(struct md_rdev *rdev, char *page) ...@@ -2546,7 +2546,8 @@ state_show(struct md_rdev *rdev, char *page)
sep = ","; sep = ",";
} }
if (test_bit(Blocked, &rdev->flags) || if (test_bit(Blocked, &rdev->flags) ||
rdev->badblocks.unacked_exist) { (rdev->badblocks.unacked_exist
&& !test_bit(Faulty, &rdev->flags))) {
len += sprintf(page+len, "%sblocked", sep); len += sprintf(page+len, "%sblocked", sep);
sep = ","; sep = ",";
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment