Skip to contentSkip to conversation

Monitor: Check redundancy for arrays

PATCH Applied Mariusz Tkaczyk 2 participants 2 messages Sep 4, 2017 – Oct 2, 2017 MD RAID

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Monitor: Check redundancy for arrays

GET_MISMATCH option doesn't exist for RAID arrays without redundancy so sysfs_read fails if this information is requested. Set options according to the device using information from /proc/mdstat.

---
 Monitor.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
Monitor.c +4 -4
index 497e364..b60996b 100644
@@ -466,7 +466,7 @@ static int check_array(struct state *st, struct mdstat_ent *mdstat,
 	int new_array = 0;
 	int retval;
 	int is_container = 0;
-	unsigned long array_only_flags = 0;
+	unsigned long redundancy_only_flags = 0;
 
 	if (test)
 		alert("TestMessage", dev, NULL, ainfo);
@@ -504,11 +504,11 @@ static int check_array(struct state *st, struct mdstat_ent *mdstat,
 	if (md_get_array_info(fd, &array) < 0)
 		goto disappeared;
 
-	if (!is_container)
-		array_only_flags |= GET_MISMATCH;
+	if (!is_container && map_name(pers, mse->level) > 0)
+		redundancy_only_flags |= GET_MISMATCH;
 
 	sra = sysfs_read(-1, st->devnm, GET_LEVEL | GET_DISKS | GET_DEVS |
-			GET_STATE | array_only_flags);
+			GET_STATE | redundancy_only_flags);
 
 	if (!sra)
 		goto disappeared;
Signature · 1 line
1.8.3.1
Applied
#1 lore raw
Quoted 8 lines · Mariusz Tkaczyk

GET_MISMATCH option doesn't exist for RAID arrays without redundancy so sysfs_read fails if this information is requested. Set options according to the device using information from /proc/mdstat.

---
  Monitor.c | 8 ++++----
  1 file changed, 4 insertions(+), 4 deletions(-)

Applied!

Thanks,
Jes