summaryrefslogtreecommitdiff
path: root/Monitor.c
diff options
context:
space:
mode:
authorJes Sorensen <jsorensen@fb.com>2017-05-09 16:52:44 -0400
committerJes Sorensen <jsorensen@fb.com>2017-05-09 16:52:44 -0400
commit48bc2ade86db576036375184774a3ebadf6a22e3 (patch)
tree51cbbf52b714b27a4f2f61cccd2256f35907d953 /Monitor.c
parentaed5f5c34c2b248876b874898d0b3bf65b6cca53 (diff)
downloadmdadm-48bc2ade86db576036375184774a3ebadf6a22e3.tar.gz
Monitor/check_array: Obtain RAID level from syfs
Signed-off-by: Jes Sorensen <jsorensen@fb.com>
Diffstat (limited to 'Monitor.c')
-rw-r--r--Monitor.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/Monitor.c b/Monitor.c
index 75aea91..b94fd7c 100644
--- a/Monitor.c
+++ b/Monitor.c
@@ -481,14 +481,14 @@ static int check_array(struct state *st, struct mdstat_ent *mdstat,
if (st->devnm[0] == 0)
strcpy(st->devnm, fd2devnm(fd));
- sra = sysfs_read(-1, st->devnm, GET_MISMATCH);
+ sra = sysfs_read(-1, st->devnm, GET_LEVEL | GET_MISMATCH);
if (!sra)
goto disappeared;
/* It's much easier to list what array levels can't
* have a device disappear than all of them that can
*/
- if (array.level == 0 || array.level == -1) {
+ if (sra->array.level == 0 || sra->array.level == -1) {
if (!st->err && !st->from_config)
alert("DeviceDisappeared", dev, " Wrong-Level", ainfo);
st->err++;
@@ -566,7 +566,7 @@ static int check_array(struct state *st, struct mdstat_ent *mdstat,
char cnt[80];
snprintf(cnt, sizeof(cnt),
" mismatches found: %d (on raid level %d)",
- sra->mismatch_cnt, array.level);
+ sra->mismatch_cnt, sra->array.level);
alert("RebuildFinished", dev, cnt, ainfo);
} else
alert("RebuildFinished", dev, NULL, ainfo);