]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - super-intel.c
Remove getinfo_super_n and do some other cleaning up.
[thirdparty/mdadm.git] / super-intel.c
index 30b2962688a70aeca5144927914af63fabe32e80..dee107cd65d2721e8db37d82c33bd423b58274b6 100644 (file)
@@ -451,6 +451,7 @@ static void uuid_from_super_imsm(struct supertype *st, int uuid[4])
        printf("%s\n", __FUNCTION__);
 }
 
+#if 0
 static void
 get_imsm_numerical_version(struct imsm_super *mpb, int *m, int *p)
 {
@@ -476,6 +477,7 @@ get_imsm_numerical_version(struct imsm_super *mpb, int *m, int *p)
        *m = strtol(minor, NULL, 0);
        *p = strtol(patch, NULL, 0);
 }
+#endif
 
 static int imsm_level_to_layout(int level)
 {
@@ -497,11 +499,9 @@ static void getinfo_super_imsm(struct supertype *st, struct mdinfo *info)
        struct intel_super *super = st->sb;
        struct imsm_super *mpb = super->mpb;
        struct imsm_disk *disk;
+       int sect = mpb_sectors(mpb);
        __u32 s;
 
-       info->array.major_version = 2000;
-       get_imsm_numerical_version(mpb, &info->array.minor_version,
-                                  &info->array.patch_version);
        info->array.raid_disks    = mpb->num_disks;
        info->array.level         = LEVEL_CONTAINER;
        info->array.layout        = 0;
@@ -518,6 +518,11 @@ static void getinfo_super_imsm(struct supertype *st, struct mdinfo *info)
        info->disk.number = -1;
        info->disk.state = 0;
 
+       info->data_offset = __le32_to_cpu(get_imsm_disk(super->mpb,
+                                                       super->disks->index)
+                                         ->total_blocks) - (2 + sect - 1);
+       info->component_size = sect;
+
        if (super->disks) {
                info->disk.number = super->disks->index;
                info->disk.raid_disk = super->disks->index;
@@ -536,9 +541,6 @@ static void getinfo_super_imsm_volume(struct supertype *st, struct mdinfo *info)
        struct imsm_dev *dev = get_imsm_dev(mpb, info->container_member);
        struct imsm_map *map = &dev->vol.map[0];
 
-       info->array.major_version = 2000;
-       get_imsm_numerical_version(mpb, &info->array.minor_version,
-                                  &info->array.patch_version);
        info->array.raid_disks    = map->num_members;
        info->array.level         = get_imsm_raid_level(map);
        info->array.layout        = imsm_level_to_layout(info->array.level);
@@ -1290,38 +1292,9 @@ static int store_zero_imsm(struct supertype *st, int fd)
        memset(buf, 0, sizeof(buf));
        if (write(fd, buf, sizeof(buf)) != sizeof(buf))
                return 1;
-
        return 0;
 }
 
-static void getinfo_super_n_imsm_container(struct supertype *st, struct mdinfo *info)
-{
-       /* just need offset and size...
-        * of the metadata
-        */
-       struct intel_super *super = st->sb;
-       struct imsm_super *mpb = super->mpb;
-       struct imsm_disk *disk = get_imsm_disk(mpb, info->disk.number);
-
-       info->data_offset = __le32_to_cpu(disk->total_blocks) -
-                           (MPB_SECTOR_CNT + IMSM_RESERVED_SECTORS);
-       info->component_size = MPB_SECTOR_CNT + IMSM_RESERVED_SECTORS;
-}
-
-static void getinfo_super_n_imsm_volume(struct supertype *st, struct mdinfo *info)
-{
-       /* Find the particular details for info->disk.raid_disk.
-        * This includes data_offset, component_size,
-        */
-       struct intel_super *super = st->sb;
-       struct imsm_super *mpb = super->mpb;
-       struct imsm_dev *dev = get_imsm_dev(mpb, super->creating_dev);
-       struct imsm_map *map = &dev->vol.map[0];
-
-       info->data_offset = __le32_to_cpu(map->pba_of_lba0);
-       info->component_size = __le32_to_cpu(map->blocks_per_member);
-}
-
 static int validate_geometry_imsm(struct supertype *st, int level, int layout,
                                  int raiddisks, int chunk, unsigned long long size,
                                  char *dev, unsigned long long *freesize)
@@ -1572,9 +1545,6 @@ static struct mdinfo *container_content_imsm(struct supertype *st)
                this->next = rest;
                rest = this;
 
-               this->array.major_version = 2000;
-               get_imsm_numerical_version(mpb, &this->array.minor_version,
-                                          &this->array.patch_version);
                this->array.level = get_imsm_raid_level(map);
                this->array.raid_disks = map->num_members;
                this->array.layout = imsm_level_to_layout(this->array.level);
@@ -1878,10 +1848,8 @@ struct superswitch super_imsm = {
        .store_super    = store_zero_imsm,
        .free_super     = free_super_imsm,
        .match_metadata_desc = match_metadata_desc_imsm,
-       .getinfo_super_n  = getinfo_super_n_imsm_container,
 
        .validate_geometry = validate_geometry_imsm,
-       .swapuuid       = 0,
        .external       = 1,
 
 /* for mdmon */
@@ -1902,7 +1870,6 @@ struct superswitch super_imsm_container = {
        .add_to_super   = add_to_super_imsm,
        .write_init_super = write_init_super_imsm,
        .getinfo_super  = getinfo_super_imsm,
-       .getinfo_super_n  = getinfo_super_n_imsm_container,
        .load_super     = load_super_imsm,
 
 #ifndef MDASSEMBLE
@@ -1916,7 +1883,6 @@ struct superswitch super_imsm_container = {
 
        .container_content = container_content_imsm,
 
-       .swapuuid       = 0,
        .external       = 1,
 };
 
@@ -1925,7 +1891,6 @@ static struct superswitch super_imsm_volume = {
        .init_super     = init_super_imsm_volume,
        .add_to_super   = add_to_super_imsm_volume,
        .getinfo_super  = getinfo_super_imsm_volume,
-       .getinfo_super_n  = getinfo_super_n_imsm_volume,
        .write_init_super = write_init_super_imsm,
 
        .load_super     = load_super_imsm,
@@ -1934,6 +1899,5 @@ static struct superswitch super_imsm_volume = {
 
 
        .validate_geometry = validate_geometry_imsm_volume,
-       .swapuuid       = 0,
        .external       = 2,
 };