diff -ur busybox-1.1.3+gentoo/mdadm/super1.c busybox-1.1.3+gentoo-mdadm-r2/mdadm/super1.c --- busybox-1.1.3+gentoo/mdadm/super1.c 2008-02-10 19:07:51.000000000 +0100 +++ busybox-1.1.3+gentoo-mdadm-r2/mdadm/super1.c 2008-02-05 22:19:32.000000000 +0100 @@ -145,6 +145,7 @@ { struct mdp_superblock_1 *sb = sbv; int i; + unsigned long long sb_offset; char *nm; char *c=map_num(pers, __le32_to_cpu(sb->level)); @@ -156,9 +157,15 @@ else nm = "??"; - printf("ARRAY /dev/md%s level=%s metadata=1 num-devices=%d UUID=", - nm, - c?c:"-unknown-", __le32_to_cpu(sb->raid_disks)); + printf("ARRAY /dev/md%s level=%s ", nm, c?c:"-unknown-"); + sb_offset = __le64_to_cpu(sb->super_offset); + if (sb_offset <= 4) + printf("metadata=1.1 "); + else if (sb_offset <= 8) + printf("metadata=1.2 "); + else + printf("metadata=1.0 "); + printf("num-devices=%d UUID=", __le32_to_cpu(sb->raid_disks)); for (i=0; i<16; i++) { if ((i&3)==0 && i != 0) printf(":"); printf("%02x", sb->set_uuid[i]);