else
printf("%08x", sb->set_uuid0);
}
+
+static void export_super0(void *sbv)
+{
+ mdp_super_t *sb = sbv;
+ printf("MD_UUID=");
+ if (sb->minor_version >= 90)
+ printf("%08x:%08x:%08x:%08x", sb->set_uuid0, sb->set_uuid1,
+ sb->set_uuid2, sb->set_uuid3);
+ else
+ printf("%08x", sb->set_uuid0);
+ printf("\n");
+}
#endif
static int match_home0(void *sbv, char *homehost)
rv = 1;
}
}
- if (strcmp(update, "grow") == 0) {
+ if (strcmp(update, "linear-grow-new") == 0) {
+ memset(&sb->disks[info->disk.number], 0, sizeof(sb->disks[0]));
+ sb->disks[info->disk.number].number = info->disk.number;
+ sb->disks[info->disk.number].major = info->disk.major;
+ sb->disks[info->disk.number].minor = info->disk.minor;
+ sb->disks[info->disk.number].raid_disk = info->disk.raid_disk;
+ sb->disks[info->disk.number].state = info->disk.state;
+ sb->this_disk = sb->disks[info->disk.number];
+ }
+ if (strcmp(update, "linear-grow-update") == 0) {
sb->raid_disks = info->array.raid_disks;
sb->nr_disks = info->array.nr_disks;
sb->active_disks = info->array.active_disks;
sb->disks[info->disk.number].minor = info->disk.minor;
sb->disks[info->disk.number].raid_disk = info->disk.raid_disk;
sb->disks[info->disk.number].state = info->disk.state;
- if (sb->this_disk.number == info->disk.number)
- sb->this_disk = sb->disks[info->disk.number];
}
if (strcmp(update, "resync") == 0) {
/* make sure resync happens */
if (!get_dev_size(fd, NULL, &dsize))
return 1;
- if (dsize < MD_RESERVED_SECTORS*2*512)
+ if (dsize < MD_RESERVED_SECTORS*512)
return 2;
offset = MD_NEW_SIZE_SECTORS(dsize>>9);
* 1 on cannot get superblock
* 2 on superblock meaningless
*/
- unsigned long size;
unsigned long long dsize;
unsigned long long offset;
mdp_super_t *super;
if (!get_dev_size(fd, devname, &dsize))
return 1;
- if (dsize < MD_RESERVED_SECTORS*512 * 2) {
+ if (dsize < MD_RESERVED_SECTORS*512) {
if (devname)
- fprintf(stderr, Name ": %s is too small for md: size is %ld sectors.\n",
- devname, size);
+ fprintf(stderr, Name
+ ": %s is too small for md: size is %llu sectors.\n",
+ devname, dsize);
return 1;
}
static __u64 avail_size0(struct supertype *st, __u64 devsize)
{
- if (devsize < MD_RESERVED_SECTORS*2)
+ if (devsize < MD_RESERVED_SECTORS)
return 0ULL;
return MD_NEW_SIZE_SECTORS(devsize);
}
if (!get_dev_size(fd, NULL, &dsize))
return;
- if (dsize < MD_RESERVED_SECTORS*512 * 2)
+ if (dsize < MD_RESERVED_SECTORS*512)
return;
offset = MD_NEW_SIZE_SECTORS(dsize>>9);
return 1;
- if (dsize < MD_RESERVED_SECTORS*512 * 2)
- return -1;
+ if (dsize < MD_RESERVED_SECTORS*512)
+ return -1;
offset = MD_NEW_SIZE_SECTORS(dsize>>9);
.brief_examine_super = brief_examine_super0,
.detail_super = detail_super0,
.brief_detail_super = brief_detail_super0,
+ .export_super = export_super0,
#endif
.match_home = match_home0,
.uuid_from_super = uuid_from_super0,