+
+ if (e && e->percent >= 0) {
+ printf(" Re%s Status : %d%% complete\n",
+ (st && st->sb && info.reshape_active)?
+ "shape":"build",
+ e->percent);
+ is_rebuilding = 1;
+ }
+ free_mdstat(ms);
+
+ if (st->sb && info.reshape_active) {
+#if 0
+This is pretty boring
+ printf(" Reshape pos'n : %llu%s\n", (unsigned long long) info.reshape_progress<<9,
+ human_size(info.reshape_progress<<9));
+#endif
+ if (info.delta_disks > 0)
+ printf(" Delta Devices : %d, (%d->%d)\n",
+ info.delta_disks, array.raid_disks - info.delta_disks, array.raid_disks);
+ if (info.delta_disks < 0)
+ printf(" Delta Devices : %d, (%d->%d)\n",
+ info.delta_disks, array.raid_disks, array.raid_disks + info.delta_disks);
+ if (info.new_level != array.level) {
+ char *c = map_num(pers, info.new_level);
+ printf(" New Level : %s\n", c?c:"-unknown-");
+ }
+ if (info.new_level != array.level ||
+ info.new_layout != array.layout) {
+ if (info.new_level == 5) {
+ char *c = map_num(r5layout, info.new_layout);
+ printf(" New Layout : %s\n",
+ c?c:"-unknown-");
+ }
+ if (info.new_level == 10) {
+ printf(" New Layout : near=%d, %s=%d\n",
+ info.new_layout&255,
+ (info.new_layout&0x10000)?"offset":"far",
+ (info.new_layout>>8)&255);
+ }
+ }
+ if (info.new_chunk != array.chunk_size)
+ printf(" New Chunksize : %dK\n", info.new_chunk/1024);
+ printf("\n");
+ } else if (e && e->percent >= 0)
+ printf("\n");
+ if (st && st->sb)
+ st->ss->detail_super(st, homehost);
+