* GET_ARRAY_INFO and GET_DISK_INFO ioctl calls
*/
- int fd = open(dev, O_RDONLY, 0);
+ int fd = open(dev, O_RDONLY);
int vers;
mdu_array_info_t array;
mdu_disk_info_t *disks;
array.major_version, array.minor_version);
if (st && st->sb)
- st->ss->export_super(st);
+ st->ss->export_detail_super(st);
goto out;
}
if (brief) {
+ mdu_bitmap_file_t bmf;
printf("ARRAY %s level=%s num-devices=%d", dev,
c?c:"-unknown-",
array.raid_disks );
else
printf(" metadata=%02d.%02d",
array.major_version, array.minor_version);
+
+ /* Only try GET_BITMAP_FILE for 0.90.01 and later */
+ if (vers >= 9001 &&
+ ioctl(fd, GET_BITMAP_FILE, &bmf) == 0 &&
+ bmf.pathname[0]) {
+ printf(" bitmap=%s", bmf.pathname);
+ }
} else {
mdu_bitmap_file_t bmf;
unsigned long long larray_size;
if (dsize > 0)
printf(" Used Dev Size : %llu%s\n",
dsize,
- human_size((long long)array.size<<10));
+ human_size((long long)dsize<<10));
else
printf(" Used Dev Size : unknown\n");
} else
printf(" Layout : %s\n", c?c:"-unknown-");
}
if (array.level == 10) {
- printf(" Layout : near=%d, %s=%d\n",
- array.layout&255, (array.layout&0x10000)?"offset":"far",
- (array.layout>>8)&255);
+ printf(" Layout :");
+ print_r10_layout(array.layout);
+ printf("\n");
}
switch (array.level) {
case 0: