[PATCH 1/1] It should be FAILED when raid has not enough active disks

Subsystems: the rest

STALE2009d

2 messages, 2 authors, 2021-03-08 · open the first message on its own page

[PATCH 1/1] It should be FAILED when raid has not enough active disks

From: Xiao Ni <hidden>
Date: 2021-02-09 09:43:27

It can't remove the disk if there are not enough disks. For example, raid5 can't remove the
second disk. If the second disk is unplug from machine, it's better show missing and the raid
should be FAILED. It's better for administrator to monitor the raid.

Signed-off-by: Xiao Ni <redacted>
---
 Detail.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/Detail.c b/Detail.c
index f8dea6f..cd26fb0 100644
--- a/Detail.c
+++ b/Detail.c
@@ -355,9 +355,14 @@ int Detail(char *dev, struct context *c)
 	avail = xcalloc(array.raid_disks, 1);
 
 	for (d = 0; d < array.raid_disks; d++) {
-
-		if ((disks[d*2].state & (1<<MD_DISK_SYNC)) ||
-		    (disks[d*2+1].state & (1<<MD_DISK_SYNC))) {
+		char *dv, *dv_rep;
+		dv = map_dev_preferred(disks[d*2].major,
+				disks[d*2].minor, 0, c->prefer);
+		dv_rep = map_dev_preferred(disks[d*2+1].major,
+				disks[d*2+1].minor, 0, c->prefer);
+
+		if ((dv && (disks[d*2].state & (1<<MD_DISK_SYNC))) ||
+		    (dv_rep && (disks[d*2+1].state & (1<<MD_DISK_SYNC)))) {
 			avail_disks ++;
 			avail[d] = 1;
 		} else
@@ -789,7 +794,8 @@ This is pretty boring
 						       &max_devices, n_devices);
 			else
 				printf("   %s", dv);
-		}
+		} else if (disk.major | disk.minor)
+			printf("   missing");
 		if (!c->brief)
 			printf("\n");
 	}
-- 
2.7.5

Re: [PATCH 1/1] It should be FAILED when raid has not enough active disks

From: Jes Sorensen <hidden>
Date: 2021-03-08 15:51:58

On 2/9/21 4:39 AM, Xiao Ni wrote:
It can't remove the disk if there are not enough disks. For example, raid5 can't remove the
second disk. If the second disk is unplug from machine, it's better show missing and the raid
should be FAILED. It's better for administrator to monitor the raid.

Signed-off-by: Xiao Ni <redacted>
---
 Detail.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)
Applied!

Thanks,
Jes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help