diff options
author | Neil Brown <neilb@suse.de> | 2004-01-22 02:10:29 +0000 |
---|---|---|
committer | Neil Brown <neilb@suse.de> | 2004-01-22 02:10:29 +0000 |
commit | 98c6faba80e6db0693f99faf5c6525ef4f1fb680 (patch) | |
tree | 73c58aeb3bd022665431cc513ce2bfd6f1560cd4 /config.c | |
parent | feb716e9c3568a45b8815bf2c59e417d30635f89 (diff) | |
download | mdadm-98c6faba80e6db0693f99faf5c6525ef4f1fb680.tar.gz mdadm-98c6faba80e6db0693f99faf5c6525ef4f1fb680.tar.xz mdadm-98c6faba80e6db0693f99faf5c6525ef4f1fb680.zip |
mdadm-1.5.0mdadm-1.5.0
Diffstat (limited to 'config.c')
-rw-r--r-- | config.c | 19 |
1 files changed, 11 insertions, 8 deletions
@@ -211,12 +211,15 @@ void load_partitions(void) } while (fgets(buf, 1024, f)) { int major, minor; - char *name; + char *name, *mp; buf[1023] = '\0'; if (buf[0] != ' ') continue; - if (sscanf(buf, " %d %d ", &major, &minor) != 2) + major = strtoul(buf, &mp, 10); + if (mp == buf || *mp != ' ') continue; + minor = strtoul(mp, NULL, 10); + name = map_dev(major, minor); if (name) { struct conf_dev *cd; @@ -262,10 +265,10 @@ void arrayline(char *line) mddev_ident_t mi; mis.uuid_set = 0; - mis.super_minor = -1; - mis.level = -10; - mis.raid_disks = -1; - mis.spare_disks = -1; + mis.super_minor = UnSet; + mis.level = UnSet; + mis.raid_disks = UnSet; + mis.spare_disks = UnSet; mis.devices = NULL; mis.devname = NULL; mis.spare_group = NULL; @@ -296,7 +299,7 @@ void arrayline(char *line) if (w[12]==0 || endptr[0]!=0 || mis.super_minor < 0) { fprintf(stderr, Name ": invalid super-minor number: %s\n", w); - mis.super_minor = -1; + mis.super_minor = UnSet; } } } else if (strncasecmp(w, "devices=", 8 ) == 0 ) { @@ -450,7 +453,7 @@ mddev_dev_t conf_get_devs(char *conffile) struct conf_dev *cd; int flags = 0; static mddev_dev_t dlist = NULL; - int i; + unsigned int i; while (dlist) { mddev_dev_t t = dlist; |