diff options
author | NeilBrown <neilb@suse.de> | 2013-03-05 11:53:51 +1100 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2013-03-05 11:53:51 +1100 |
commit | 5e73b02409e55b1f8e48e7b933d97a73ff2e66d3 (patch) | |
tree | 09cad15e1c395e7c7381d4c927063bc4c32dbd4d /config.c | |
parent | 748952f73e34f9963ea82347f4d71d67dcb1096a (diff) |
Ensure mddev_dev struct always zeroed on allocation.
There are a number of fields which should not
be left uninitialised. e.g. attempt_re_add can get
confused if ->writemostly is not set correctly.
Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'config.c')
-rw-r--r-- | config.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -179,9 +179,9 @@ struct mddev_dev *load_partitions(void) if (!name) continue; d = xmalloc(sizeof(*d)); + memset(d, 0, sizeof(*d)); d->devname = xstrdup(name); d->next = rv; - d->used = 0; rv = d; } fclose(f); @@ -203,12 +203,12 @@ struct mddev_dev *load_containers(void) strncmp(ent->metadata_version, "external:", 9) == 0 && !is_subarray(&ent->metadata_version[9])) { d = xmalloc(sizeof(*d)); + memset(d, 0, sizeof(*d)); if (asprintf(&d->devname, "/dev/%s", ent->dev) < 0) { free(d); continue; } d->next = rv; - d->used = 0; rv = d; } free_mdstat(mdstat); @@ -884,9 +884,9 @@ struct mddev_dev *conf_get_devs() if (flags & GLOB_APPEND) { for (i=0; i<globbuf.gl_pathc; i++) { struct mddev_dev *t = xmalloc(sizeof(*t)); + memset(t, 0, sizeof(*t)); t->devname = xstrdup(globbuf.gl_pathv[i]); t->next = dlist; - t->used = 0; dlist = t; /* printf("one dev is %s\n", t->devname);*/ } |