Remove content from mddev_dev

Now that the next_member loop is much smaller it is easy to
just use 'content' rather than stashing it in 'tmpdev->content'.
So we can remove the 'content' field from 'struct mddev_dev'.

Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
NeilBrown 2010-11-22 20:58:05 +11:00
parent 1415fe4b6c
commit 2b594614a1
4 changed files with 7 additions and 15 deletions

View File

@ -391,22 +391,21 @@ int Assemble(struct supertype *st, char *mddev,
fprintf(stderr, Name ": looking in container %s\n", fprintf(stderr, Name ": looking in container %s\n",
devname); devname);
tmpdev->content = tst->ss->container_content(tst, NULL); content = tst->ss->container_content(tst, NULL);
next_member: next_member:
if (tmpdev->content)
content = tmpdev->content;
if (!content) if (!content)
goto loop; /* empty container */ goto loop; /* empty container */
tmpdev->content = content->next; if (content->next == NULL)
if (tmpdev->content == NULL)
tmpdev->used = 2; tmpdev->used = 2;
if (!ident_matches(ident, content, tst, if (!ident_matches(ident, content, tst,
homehost, update, homehost, update,
report_missmatch ? devname : NULL)) report_missmatch ? devname : NULL)) {
content = content->next;
goto next_member; goto next_member;
}
/* we have the one container we need, don't keep /* we have the one container we need, don't keep
* looking. If the chosen member is active, skip. * looking. If the chosen member is active, skip.
@ -417,11 +416,11 @@ int Assemble(struct supertype *st, char *mddev,
content->text_version, content->text_version,
devname); devname);
skip: skip:
if (tmpdev->content) content = content->next;
if (content)
goto next_member; goto next_member;
tst->ss->free_super(tst); tst->ss->free_super(tst);
tst = NULL; tst = NULL;
content = NULL;
if (auto_assem) if (auto_assem)
goto loop; goto loop;
dev_policy_free(pol); dev_policy_free(pol);

View File

@ -260,7 +260,6 @@ struct mddev_dev *load_partitions(void)
d->devname = strdup(name); d->devname = strdup(name);
d->next = rv; d->next = rv;
d->used = 0; d->used = 0;
d->content = NULL;
rv = d; rv = d;
} }
fclose(f); fclose(f);
@ -290,7 +289,6 @@ struct mddev_dev *load_containers(void)
} }
d->next = rv; d->next = rv;
d->used = 0; d->used = 0;
d->content = NULL;
rv = d; rv = d;
} }
free_mdstat(mdstat); free_mdstat(mdstat);
@ -964,7 +962,6 @@ struct mddev_dev *conf_get_devs()
t->devname = strdup(globbuf.gl_pathv[i]); t->devname = strdup(globbuf.gl_pathv[i]);
t->next = dlist; t->next = dlist;
t->used = 0; t->used = 0;
t->content = NULL;
dlist = t; dlist = t;
/* printf("one dev is %s\n", t->devname);*/ /* printf("one dev is %s\n", t->devname);*/
} }

View File

@ -265,7 +265,6 @@ int main(int argc, char *argv[])
dv->writemostly = writemostly; dv->writemostly = writemostly;
dv->re_add = re_add; dv->re_add = re_add;
dv->used = 0; dv->used = 0;
dv->content = NULL;
dv->next = NULL; dv->next = NULL;
*devlistend = dv; *devlistend = dv;
devlistend = &dv->next; devlistend = &dv->next;
@ -320,7 +319,6 @@ int main(int argc, char *argv[])
dv->writemostly = writemostly; dv->writemostly = writemostly;
dv->re_add = re_add; dv->re_add = re_add;
dv->used = 0; dv->used = 0;
dv->content = NULL;
dv->next = NULL; dv->next = NULL;
*devlistend = dv; *devlistend = dv;
devlistend = &dv->next; devlistend = &dv->next;

View File

@ -337,8 +337,6 @@ struct mddev_dev {
char writemostly; /* 1 for 'set writemostly', 2 for 'clear writemostly' */ char writemostly; /* 1 for 'set writemostly', 2 for 'clear writemostly' */
char re_add; char re_add;
char used; /* set when used */ char used; /* set when used */
struct mdinfo *content; /* If devname is a container, this might list
* the remaining member arrays. */
struct mddev_dev *next; struct mddev_dev *next;
}; };