/*
* mdadm - manage Linux "md" devices aka RAID arrays.
*
- * Copyright (C) 2001-2002 Neil Brown <neilb@cse.unsw.edu.au>
+ * Copyright (C) 2001-2006 Neil Brown <neilb@suse.de>
*
*
* This program is free software; you can redistribute it and/or modify
#include "md_p.h"
#include "md_u.h"
-int Detail(char *dev, int brief, int test)
+int Detail(char *dev, int brief, int test, char *homehost)
{
/*
* Print out details for an md array by using
(larray_size >= 0xFFFFFFFFULL|| array.size == 0)) {
unsigned long long dsize = get_component_size(fd);
if (dsize > 0)
- printf(" Device Size : %llu%s\n", dsize, human_size((long long)array.size<<10));
+ printf(" Used Dev Size : %llu%s\n",
+ dsize,
+ human_size((long long)array.size<<10));
else
- printf(" Device Size : unknown\n");
+ printf(" Used Dev Size : unknown\n");
} else
- printf(" Device Size : %d%s\n", array.size, human_size((long long)array.size<<10));
+ printf(" Used Dev Size : %d%s\n", array.size,
+ human_size((long long)array.size<<10));
}
printf(" Raid Devices : %d\n", array.raid_disks);
printf(" Total Devices : %d\n", array.nr_disks);
printf(" Intent Bitmap : Internal\n\n");
atime = array.utime;
printf(" Update Time : %.24s\n", ctime(&atime));
- printf(" State : %s%s%s\n",
+ printf(" State : %s%s%s%s\n",
(array.state&(1<<MD_SB_CLEAN))?"clean":"active",
array.active_disks < array.raid_disks? ", degraded":"",
(!e || e->percent < 0) ? "" :
- (e->resync) ? ", resyncing": ", recovering");
+ (e->resync) ? ", resyncing": ", recovering",
+ larray_size ? "": ", Not Started");
printf(" Active Devices : %d\n", array.active_disks);
printf("Working Devices : %d\n", array.working_disks);
printf(" Failed Devices : %d\n", array.failed_disks);
printf(" Layout : %s\n", c?c:"-unknown-");
}
if (array.level == 10) {
- printf(" Layout : near=%d, far=%d\n",
- array.layout&255, (array.layout>>8)&255);
+ printf(" Layout : near=%d, %s=%d\n",
+ array.layout&255, (array.layout&0x10000)?"offset":"far",
+ (array.layout>>8)&255);
}
switch (array.level) {
case 0:
c?c:"-unknown-");
}
if (info.new_level == 10) {
- printf(" New Layout : near=%d, far=%d\n",
+ printf(" New Layout : near=%d, %s=%d\n",
info.new_layout&255,
+ (info.new_layout&0x10000)?"offset":"far",
(info.new_layout>>8)&255);
}
}
} else if (e && e->percent >= 0)
printf("\n");
if (super && st)
- st->ss->detail_super(super);
+ st->ss->detail_super(super, homehost);
printf(" Number Major Minor RaidDevice State\n");
}