imsm: Add information about migration record to mdadm '-E' option
Add ability to display information from migration record in examine option. Signed-off-by: Adam Kwolek <adam.kwolek@intel.com> Signed-off-by: Krzysztof Wojcik <krzysztof.wojcik@intel.com> Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
146c626037
commit
520e69e25c
|
@ -1035,6 +1035,57 @@ static void print_imsm_disk(struct imsm_super *mpb, int index, __u32 reserved)
|
||||||
human_size(sz * 512));
|
human_size(sz * 512));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int is_gen_migration(struct imsm_dev *dev);
|
||||||
|
|
||||||
|
void examine_migr_rec_imsm(struct intel_super *super)
|
||||||
|
{
|
||||||
|
struct migr_record *migr_rec = super->migr_rec;
|
||||||
|
struct imsm_super *mpb = super->anchor;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; i < mpb->num_raid_devs; i++) {
|
||||||
|
struct imsm_dev *dev = __get_imsm_dev(mpb, i);
|
||||||
|
if (is_gen_migration(dev) == 0)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
printf("\nMigration Record Information:");
|
||||||
|
if (super->disks->index > 1) {
|
||||||
|
printf(" Empty\n ");
|
||||||
|
printf("Examine one of first two disks in array\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
printf("\n Status : ");
|
||||||
|
if (__le32_to_cpu(migr_rec->rec_status) == UNIT_SRC_NORMAL)
|
||||||
|
printf("Normal\n");
|
||||||
|
else
|
||||||
|
printf("Contains Data\n");
|
||||||
|
printf(" Current Unit : %u\n",
|
||||||
|
__le32_to_cpu(migr_rec->curr_migr_unit));
|
||||||
|
printf(" Family : %u\n",
|
||||||
|
__le32_to_cpu(migr_rec->family_num));
|
||||||
|
printf(" Ascending : %u\n",
|
||||||
|
__le32_to_cpu(migr_rec->ascending_migr));
|
||||||
|
printf(" Blocks Per Unit : %u\n",
|
||||||
|
__le32_to_cpu(migr_rec->blocks_per_unit));
|
||||||
|
printf(" Dest. Depth Per Unit : %u\n",
|
||||||
|
__le32_to_cpu(migr_rec->dest_depth_per_unit));
|
||||||
|
printf(" Checkpoint Area pba : %u\n",
|
||||||
|
__le32_to_cpu(migr_rec->ckpt_area_pba));
|
||||||
|
printf(" First member lba : %u\n",
|
||||||
|
__le32_to_cpu(migr_rec->dest_1st_member_lba));
|
||||||
|
printf(" Total Number of Units : %u\n",
|
||||||
|
__le32_to_cpu(migr_rec->num_migr_units));
|
||||||
|
printf(" Size of volume : %u\n",
|
||||||
|
__le32_to_cpu(migr_rec->post_migr_vol_cap));
|
||||||
|
printf(" Expansion space for LBA64 : %u\n",
|
||||||
|
__le32_to_cpu(migr_rec->post_migr_vol_cap_hi));
|
||||||
|
printf(" Record was read from : %u\n",
|
||||||
|
__le32_to_cpu(migr_rec->ckpt_read_disk_num));
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void getinfo_super_imsm(struct supertype *st, struct mdinfo *info, char *map);
|
static void getinfo_super_imsm(struct supertype *st, struct mdinfo *info, char *map);
|
||||||
|
|
||||||
static void examine_super_imsm(struct supertype *st, char *homehost)
|
static void examine_super_imsm(struct supertype *st, char *homehost)
|
||||||
|
@ -1112,6 +1163,8 @@ static void examine_super_imsm(struct supertype *st, char *homehost)
|
||||||
printf(" Usable Size : %llu%s\n", (unsigned long long)sz,
|
printf(" Usable Size : %llu%s\n", (unsigned long long)sz,
|
||||||
human_size(sz * 512));
|
human_size(sz * 512));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
examine_migr_rec_imsm(super);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void brief_examine_super_imsm(struct supertype *st, int verbose)
|
static void brief_examine_super_imsm(struct supertype *st, int verbose)
|
||||||
|
|
Loading…
Reference in New Issue