From: Mariusz Tkaczyk Date: Mon, 4 Sep 2017 10:52:46 +0000 (+0200) Subject: Monitor: Check redundancy for arrays X-Git-Tag: mdadm-4.1-rc1~79 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b3ab4e4dd78668f58deb87a04eebda62d1090b49;p=thirdparty%2Fmdadm.git 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. Signed-off-by: Mariusz Tkaczyk Signed-off-by: Jes Sorensen --- diff --git a/Monitor.c b/Monitor.c index 497e3642..b60996bf 100644 --- a/Monitor.c +++ b/Monitor.c @@ -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;