summaryrefslogtreecommitdiffstats
path: root/super-ddf.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2009-03-10 16:28:22 +1100
committerNeilBrown <neilb@suse.de>2009-03-10 16:28:22 +1100
commitbc17324f5e0fd1631bfd9a8d749a34a94da4e621 (patch)
tree3260e3d3797eef95e1f3a2ff9a484e5e046afb6b /super-ddf.c
parentbb50e5d38319fbb243d1a20151e0f00f3f209817 (diff)
downloadmdadm-bc17324f5e0fd1631bfd9a8d749a34a94da4e621.tar.gz
mdadm-bc17324f5e0fd1631bfd9a8d749a34a94da4e621.tar.xz
mdadm-bc17324f5e0fd1631bfd9a8d749a34a94da4e621.zip
DDF: fix up container_content
If we haven't got hold of all the devices yet, we need to be ready to skip over some while gathering content information. Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'super-ddf.c')
-rw-r--r--super-ddf.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/super-ddf.c b/super-ddf.c
index 009fbfb..965b8e2 100644
--- a/super-ddf.c
+++ b/super-ddf.c
@@ -2916,13 +2916,14 @@ static struct mdinfo *container_content_ddf(struct supertype *st)
if (vc->conf.phys_refnum[i] == 0xFFFFFFFF)
continue;
- this->array.working_disks++;
-
for (d = ddf->dlist; d ; d=d->next)
if (d->disk.refnum == vc->conf.phys_refnum[i])
break;
if (d == NULL)
- break;
+ /* Haven't found that one yet, maybe there are others */
+ continue;
+
+ this->array.working_disks++;
dev = malloc(sizeof(*dev));
memset(dev, 0, sizeof(*dev));