|
 |
ca921c |
From db5377883fef8655aac56b5d7ce5408f8ae494e0 Mon Sep 17 00:00:00 2001
|
|
 |
ca921c |
From: Xiao Ni <xni@redhat.com>
|
|
 |
ca921c |
Date: Tue, 9 Feb 2021 17:39:51 +0800
|
|
 |
ca921c |
Subject: [PATCH 1/1] It should be FAILED when raid has not enough active disks
|
|
 |
ca921c |
|
|
 |
ca921c |
It can't remove the disk if there are not enough disks. For example, raid5 can't remove the
|
|
 |
ca921c |
second disk. If the second disk is unplug from machine, it's better show missing and the raid
|
|
 |
ca921c |
should be FAILED. It's better for administrator to monitor the raid.
|
|
 |
ca921c |
|
|
 |
ca921c |
Signed-off-by: Xiao Ni <xni@redhat.com>
|
|
 |
ca921c |
Signed-off-by: Jes Sorensen <jsorensen@fb.com>
|
|
 |
ca921c |
---
|
|
 |
ca921c |
Detail.c | 14 ++++++++++----
|
|
 |
ca921c |
1 file changed, 10 insertions(+), 4 deletions(-)
|
|
 |
ca921c |
|
|
 |
ca921c |
diff --git a/Detail.c b/Detail.c
|
|
 |
ca921c |
index f8dea6f..cd26fb0 100644
|
|
 |
ca921c |
--- a/Detail.c
|
|
 |
ca921c |
+++ b/Detail.c
|
|
 |
ca921c |
@@ -355,9 +355,14 @@ int Detail(char *dev, struct context *c)
|
|
 |
ca921c |
avail = xcalloc(array.raid_disks, 1);
|
|
 |
ca921c |
|
|
 |
ca921c |
for (d = 0; d < array.raid_disks; d++) {
|
|
 |
ca921c |
-
|
|
 |
ca921c |
- if ((disks[d*2].state & (1<
|
|
 |
ca921c |
- (disks[d*2+1].state & (1<
|
|
 |
ca921c |
+ char *dv, *dv_rep;
|
|
 |
ca921c |
+ dv = map_dev_preferred(disks[d*2].major,
|
|
 |
ca921c |
+ disks[d*2].minor, 0, c->prefer);
|
|
 |
ca921c |
+ dv_rep = map_dev_preferred(disks[d*2+1].major,
|
|
 |
ca921c |
+ disks[d*2+1].minor, 0, c->prefer);
|
|
 |
ca921c |
+
|
|
 |
ca921c |
+ if ((dv && (disks[d*2].state & (1<
|
|
 |
ca921c |
+ (dv_rep && (disks[d*2+1].state & (1<
|
|
 |
ca921c |
avail_disks ++;
|
|
 |
ca921c |
avail[d] = 1;
|
|
 |
ca921c |
} else
|
|
 |
ca921c |
@@ -789,7 +794,8 @@ This is pretty boring
|
|
 |
ca921c |
&max_devices, n_devices);
|
|
 |
ca921c |
else
|
|
 |
ca921c |
printf(" %s", dv);
|
|
 |
ca921c |
- }
|
|
 |
ca921c |
+ } else if (disk.major | disk.minor)
|
|
 |
ca921c |
+ printf(" missing");
|
|
 |
ca921c |
if (!c->brief)
|
|
 |
ca921c |
printf("\n");
|
|
 |
ca921c |
}
|
|
 |
ca921c |
--
|
|
 |
ca921c |
2.7.5
|
|
 |
ca921c |
|