diff options
Diffstat (limited to 'sys/dev/vinum/vinumio.c')
-rw-r--r-- | sys/dev/vinum/vinumio.c | 46 |
1 files changed, 28 insertions, 18 deletions
diff --git a/sys/dev/vinum/vinumio.c b/sys/dev/vinum/vinumio.c index 584915f..7e10209 100644 --- a/sys/dev/vinum/vinumio.c +++ b/sys/dev/vinum/vinumio.c @@ -87,6 +87,9 @@ open_drive(struct drive *drive, struct proc *p, int verbose) else if (bcmp(dname, "amrd", 4) == 0) { devmajor = 133; dname += 2; + } else if (bcmp(dname, "mlxd", 4) == 0) { + devmajor = 131; + dname += 2; } else if (bcmp(dname, "idad", 4) == 0) { devmajor = 109; dname += 2; @@ -552,28 +555,32 @@ format_config(char *config, int len) */ if (drivename[0] == '\0') drivename = "*invalid*"; + snprintf(s, + configend - s, + "sd name %s drive %s plex %s len %llus driveoffset %llus state %s", + sd->name, + drivename, + vinum_conf.plex[sd->plexno].name, + (unsigned long long) sd->sectors, + (unsigned long long) sd->driveoffset, + sd_state(sd->state)); + while (*s) + s++; /* find the end */ if (sd->plexno >= 0) snprintf(s, configend - s, - "sd name %s drive %s plex %s state %s " - "len %llus driveoffset %llus plexoffset %llds\n", - sd->name, - drivename, - vinum_conf.plex[sd->plexno].name, - sd_state(sd->state), - (unsigned long long) sd->sectors, - (unsigned long long) sd->driveoffset, + " plexoffset %llds", (long long) sd->plexoffset); else - snprintf(s, - configend - s, - "sd name %s drive %s state %s " - "len %llus driveoffset %llus detached\n", - sd->name, - drivename, - sd_state(sd->state), - (unsigned long long) sd->sectors, - (unsigned long long) sd->driveoffset); + snprintf(s, configend - s, " detached"); + while (*s) + s++; /* find the end */ + if (sd->flags & VF_RETRYERRORS) { + snprintf(s, configend - s, " retryerrors"); + while (*s) + s++; /* find the end */ + } + snprintf(s, configend - s, " \n"); while (*s) s++; /* find the end */ } @@ -900,7 +907,10 @@ vinum_scandisk(char *devicename[], int drives) } if (gooddrives == 0) { - log(LOG_WARNING, "vinum: no drives found\n"); + if (firsttime) + log(LOG_WARNING, "vinum: no drives found\n"); + else + log(LOG_INFO, "vinum: no additional drives found\n"); return ENOENT; } /* |