diff -urN linux-2.6.12-00004/drivers/md/dm-log.c linux-2.6.12-00005-alt/drivers/md/dm-log.c --- linux-2.6.12-00004/drivers/md/dm-log.c 2005-06-30 01:44:58.000000000 -0500 +++ linux-2.6.12-00005-alt/drivers/md/dm-log.c 2005-06-30 13:46:43.260023309 -0500 @@ -737,6 +737,8 @@ switch(status) { case STATUSTYPE_INFO: + format_dev_t(buffer, lc->log_dev->bdev->bd_dev); + DMEMIT("%s %c", buffer, lc->log_dev_failed ? 'D' : 'A'); break; case STATUSTYPE_TABLE: diff -urN linux-2.6.12-00004/drivers/md/dm-raid1.c linux-2.6.12-00005-alt/drivers/md/dm-raid1.c --- linux-2.6.12-00004/drivers/md/dm-raid1.c 2005-06-30 01:56:19.000000000 -0500 +++ linux-2.6.12-00005-alt/drivers/md/dm-raid1.c 2005-06-30 13:55:18.644187058 -0500 @@ -1538,23 +1538,28 @@ static int mirror_status(struct dm_target *ti, status_type_t type, char *result, unsigned int maxlen) { - unsigned int m, sz; + unsigned int m, sz = 0; struct mirror_set *ms = (struct mirror_set *) ti->private; - - sz = ms->rh.log->type->status(ms->rh.log, type, result, maxlen); + char buffer[ms->nr_mirrors + 1]; switch (type) { case STATUSTYPE_INFO: DMEMIT("%d ", ms->nr_mirrors); - for (m = 0; m < ms->nr_mirrors; m++) + for (m = 0; m < ms->nr_mirrors; m++) { DMEMIT("%s ", ms->mirror[m].dev->name); + buffer[m] = atomic_read(&(ms->mirror[m].error_count)) ? + 'D' : 'A'; + } + buffer[m] = '\0'; - DMEMIT(SECTOR_FORMAT "/" SECTOR_FORMAT, + DMEMIT(SECTOR_FORMAT "/" SECTOR_FORMAT " %s ", ms->rh.log->type->get_sync_count(ms->rh.log), - ms->nr_regions); + ms->nr_regions, buffer); + ms->rh.log->type->status(ms->rh.log, type, result+sz, maxlen-sz); break; case STATUSTYPE_TABLE: + sz = ms->rh.log->type->status(ms->rh.log, type, result, maxlen); DMEMIT("%d ", ms->nr_mirrors); for (m = 0; m < ms->nr_mirrors; m++) DMEMIT("%s " SECTOR_FORMAT " ",