mdmon: record added disks

Prevent duplicate disks from being sent to the monitor thread.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
Dan Williams 2009-02-24 18:45:57 -07:00
parent 7da80e6faa
commit 04a8ac089c
1 changed files with 13 additions and 2 deletions

View File

@ -253,6 +253,9 @@ static void add_disk_to_container(struct supertype *st, struct mdinfo *sd)
dprintf("%s: add %d:%d to container\n",
__func__, sd->disk.major, sd->disk.minor);
sd->next = st->devs;
st->devs = sd;
sprintf(nm, "%d:%d", sd->disk.major, sd->disk.minor);
dfd = dev_open(nm, O_RDWR);
if (dfd < 0)
@ -313,8 +316,16 @@ static void manage_container(struct mdstat_ent *mdstat,
if (di->disk.major == cd->disk.major &&
di->disk.minor == cd->disk.minor)
break;
if (!cd)
add_disk_to_container(container, di);
if (!cd) {
struct mdinfo *newd = malloc(sizeof(*newd));
if (!newd) {
container->devcnt = -1;
continue;
}
*newd = *di;
add_disk_to_container(container, newd);
}
}
sysfs_free(mdi);
container->devcnt = mdstat->devcnt;