summaryrefslogtreecommitdiffstats
path: root/super-ddf.c
diff options
context:
space:
mode:
authorNeil Brown <neilb@suse.de>2008-05-15 16:48:21 +1000
committerNeil Brown <neilb@suse.de>2008-05-15 16:48:21 +1000
commit2f6079dc96180335fdb56d0b89e462e903abbb50 (patch)
treec643ba942b6a7a2ccb100e3707eed3d139b5253d /super-ddf.c
parent598f0d58ac3544e25f90f2d34337e15764f4d877 (diff)
downloadmdadm-2f6079dc96180335fdb56d0b89e462e903abbb50.tar.gz
mdadm-2f6079dc96180335fdb56d0b89e462e903abbb50.tar.xz
mdadm-2f6079dc96180335fdb56d0b89e462e903abbb50.zip
Create a container member
From: Neil Brown <neilb@suse.de>
Diffstat (limited to 'super-ddf.c')
-rw-r--r--super-ddf.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/super-ddf.c b/super-ddf.c
index b494647..69ca320 100644
--- a/super-ddf.c
+++ b/super-ddf.c
@@ -416,7 +416,7 @@ struct ddf_super {
#define offsetof(t,f) ((size_t)&(((t*)0)->f))
#endif
-struct superswitch super_ddf_container, super_ddf_bvd;
+extern struct superswitch super_ddf_container, super_ddf_bvd;
static int calc_crc(void *buf, int len)
{
@@ -1657,6 +1657,7 @@ static int init_super_ddf_bvd(struct supertype *st,
return 0;
}
ve = &ddf->virt->entries[venum];
+ st->container_member = venum;
/* A Virtual Disk GUID contains the T10 Vendor ID, controller type,
* timestamp, random number
@@ -2023,6 +2024,8 @@ int validate_geometry_ddf(struct supertype *st,
st->ss = &super_ddf_bvd;
if (load_super_ddf_all(st, cfd, (void **)&ddf, NULL, 1) == 0) {
st->sb = ddf;
+ st->container_dev = fd2devnum(cfd);
+ st->container_member = 27; // FIXME
close(cfd);
return st->ss->validate_geometry(st, level, layout,
raiddisks, chunk, size,