Commit 2d2b3bc1 authored by Mateusz Kusiak's avatar Mateusz Kusiak Committed by Song Liu

md: Report failed arrays as broken in mdstat

Depending on if array has personality, it is either reported as active or
inactive. This patch adds third status "broken" for arrays with
personality that became inoperative. The reason is end users tend to
assume that "active" indicates array is operational.

Add "broken" state for inoperative arrays with personality and refactor
the code.
Signed-off-by: default avatarMateusz Kusiak <mateusz.kusiak@intel.com>
Link: https://lore.kernel.org/r/20240903142949.53628-1-mateusz.kusiak@intel.comSigned-off-by: default avatarSong Liu <song@kernel.org>
parent fb16787b
...@@ -8327,14 +8327,19 @@ static int md_seq_show(struct seq_file *seq, void *v) ...@@ -8327,14 +8327,19 @@ static int md_seq_show(struct seq_file *seq, void *v)
spin_unlock(&all_mddevs_lock); spin_unlock(&all_mddevs_lock);
spin_lock(&mddev->lock); spin_lock(&mddev->lock);
if (mddev->pers || mddev->raid_disks || !list_empty(&mddev->disks)) { if (mddev->pers || mddev->raid_disks || !list_empty(&mddev->disks)) {
seq_printf(seq, "%s : %sactive", mdname(mddev), seq_printf(seq, "%s : ", mdname(mddev));
mddev->pers ? "" : "in");
if (mddev->pers) { if (mddev->pers) {
if (test_bit(MD_BROKEN, &mddev->flags))
seq_printf(seq, "broken");
else
seq_printf(seq, "active");
if (mddev->ro == MD_RDONLY) if (mddev->ro == MD_RDONLY)
seq_printf(seq, " (read-only)"); seq_printf(seq, " (read-only)");
if (mddev->ro == MD_AUTO_READ) if (mddev->ro == MD_AUTO_READ)
seq_printf(seq, " (auto-read-only)"); seq_printf(seq, " (auto-read-only)");
seq_printf(seq, " %s", mddev->pers->name); seq_printf(seq, " %s", mddev->pers->name);
} else {
seq_printf(seq, "inactive");
} }
sectors = 0; sectors = 0;
......
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