summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--super-ddf.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/super-ddf.c b/super-ddf.c
index 3fba2eb..7312ba4 100644
--- a/super-ddf.c
+++ b/super-ddf.c
@@ -1429,16 +1429,20 @@ static void getinfo_super_ddf_bvd(struct supertype *st, struct mdinfo *info, cha
info->component_size = __be64_to_cpu(vc->conf.blocks);
}
- dl = ddf->dlist;
+ for (dl = ddf->dlist; dl ; dl = dl->next)
+ if (dl->raiddisk == ddf->currentdev)
+ break;
+
info->disk.major = 0;
info->disk.minor = 0;
+ info->disk.state = 0;
if (dl) {
info->disk.major = dl->major;
info->disk.minor = dl->minor;
+ info->disk.raid_disk = dl->raiddisk;
+ info->disk.number = dl->pdnum;
+ info->disk.state = (1<<MD_DISK_SYNC)|(1<<MD_DISK_ACTIVE);
}
-// info->disk.number = __be32_to_cpu(ddf->disk.refnum);
-// info->disk.raid_disk = find refnum in the table and use index;
-// info->disk.state = ???;
info->container_member = ddf->currentconf->vcnum;