meta_error.c revision d7cd82522afdd890a66c7600b499590ad44e84bd
843e19887f64dde75055cf8842fc4db2171eff45johnlev * CDDL HEADER START
843e19887f64dde75055cf8842fc4db2171eff45johnlev * The contents of this file are subject to the terms of the
843e19887f64dde75055cf8842fc4db2171eff45johnlev * Common Development and Distribution License (the "License").
843e19887f64dde75055cf8842fc4db2171eff45johnlev * You may not use this file except in compliance with the License.
843e19887f64dde75055cf8842fc4db2171eff45johnlev * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
843e19887f64dde75055cf8842fc4db2171eff45johnlev * See the License for the specific language governing permissions
843e19887f64dde75055cf8842fc4db2171eff45johnlev * and limitations under the License.
843e19887f64dde75055cf8842fc4db2171eff45johnlev * When distributing Covered Code, include this CDDL HEADER in each
843e19887f64dde75055cf8842fc4db2171eff45johnlev * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
843e19887f64dde75055cf8842fc4db2171eff45johnlev * If applicable, add the following below this CDDL HEADER, with the
843e19887f64dde75055cf8842fc4db2171eff45johnlev * fields enclosed by brackets "[]" replaced with your own identifying
843e19887f64dde75055cf8842fc4db2171eff45johnlev * information: Portions Copyright [yyyy] [name of copyright owner]
843e19887f64dde75055cf8842fc4db2171eff45johnlev * CDDL HEADER END
843e19887f64dde75055cf8842fc4db2171eff45johnlev * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
843e19887f64dde75055cf8842fc4db2171eff45johnlev * Use is subject to license terms.
843e19887f64dde75055cf8842fc4db2171eff45johnlev#pragma ident "%Z%%M% %I% %E% SMI"
843e19887f64dde75055cf8842fc4db2171eff45johnlev * Just in case we're not in a build environment, make sure that
843e19887f64dde75055cf8842fc4db2171eff45johnlev * TEXT_DOMAIN gets set to something.
843e19887f64dde75055cf8842fc4db2171eff45johnlev * print metedevice errors
843e19887f64dde75055cf8842fc4db2171eff45johnlev * clear error
843e19887f64dde75055cf8842fc4db2171eff45johnlev * cook names
843e19887f64dde75055cf8842fc4db2171eff45johnlevstatic char *
843e19887f64dde75055cf8842fc4db2171eff45johnlev /* get name, or fake it */
843e19887f64dde75055cf8842fc4db2171eff45johnlevstatic char *
843e19887f64dde75055cf8842fc4db2171eff45johnlev /* get name or fake it */
843e19887f64dde75055cf8842fc4db2171eff45johnlev return (Strdup(dgettext(TEXT_DOMAIN, "unknown device")));
843e19887f64dde75055cf8842fc4db2171eff45johnlevstatic char *
843e19887f64dde75055cf8842fc4db2171eff45johnlev (void) sprintf(buf, "%u/%u", HSP_SET(hsp), HSP_ID(hsp));
843e19887f64dde75055cf8842fc4db2171eff45johnlevstatic char *
843e19887f64dde75055cf8842fc4db2171eff45johnlev * fill in all the appropriate md_error_t fields
843e19887f64dde75055cf8842fc4db2171eff45johnlev /* get host name */
843e19887f64dde75055cf8842fc4db2171eff45johnlev /* get appropriate name */
843e19887f64dde75055cf8842fc4db2171eff45johnlev /* can't do anything about these */
843e19887f64dde75055cf8842fc4db2171eff45johnlev /* device name */
843e19887f64dde75055cf8842fc4db2171eff45johnlev /* device name */
843e19887f64dde75055cf8842fc4db2171eff45johnlev "unknown"));
843e19887f64dde75055cf8842fc4db2171eff45johnlev /* metadevice name */
843e19887f64dde75055cf8842fc4db2171eff45johnlev /* component name */
843e19887f64dde75055cf8842fc4db2171eff45johnlev /* hotspare pool name */
843e19887f64dde75055cf8842fc4db2171eff45johnlev /* hotspare name */
843e19887f64dde75055cf8842fc4db2171eff45johnlev devname = dev_name(HSP_SET(ip->hs.hsp), ip->hs.dev);
case MDEC_MDDB:
case MDEC_DS:
char *name
int errnum,
char *name
if (errnum != 0) {
char *host,
char *extra
char *host,
char *extra
char *name
char *where,
char *name
char *name,
char *where,
char *overlap
char *name
char *name
char *name
char *name
char *name
char *node,
char *drive,
char *name
char *extra
int cmd,
void *data,
char *name
int fd;
char *buf,
case MDE_NONE:
case MDE_UNIT_NOT_FOUND:
case MDE_DUPDRIVE:
case MDE_INVAL_HSOP:
case MDE_NO_SET:
case MDE_SET_DIFF:
case MDE_BAD_RD_OPT:
case MDE_BAD_WR_OPT:
case MDE_BAD_PASS_NUM:
case MDE_BAD_RESYNC_OPT:
case MDE_BAD_INTERLACE:
case MDE_NO_HSPS:
case MDE_NOTENOUGH_DB:
case MDE_DELDB_NOTALLOWED:
case MDE_SYSTEM_FILE:
case MDE_MDDB_FILE:
case MDE_MDDB_CKSUM:
case MDE_VFSTAB_FILE:
case MDE_NOSLICE:
case MDE_SYNTAX:
case MDE_OPTION:
case MDE_TAKE_OWN:
case MDE_NOT_DRIVENAME:
case MDE_RESERVED:
case MDE_DVERSION:
case MDE_MVERSION:
case MDE_TESTERROR:
case MDE_BAD_ORIG_NCOL:
case MDE_RAID_INVALID:
case MDE_MED_ERROR:
case MDE_TOOMANYMED:
case MDE_NOMED:
case MDE_ONLYNODENAME:
case MDE_RAID_BAD_PW_CNT:
case MDE_DEVID_TOOBIG:
case MDE_NOPERM:
case MDE_NODEVID:
case MDE_NOROOT:
case MDE_EOF_TRANS:
case MDE_NOT_MN:
case MDE_ABR_SET:
case MDE_INVAL_MNOP:
case MDE_MNSET_NOTRANS:
case MDE_MNSET_NORAID:
case MDE_FORCE_DEL_ALL_DRV:
case MDE_STRIPE_TRUNC_SINGLE:
case MDE_SMF_FAIL:
case MDE_SMF_NO_SERVICE:
case MDE_AMBIGUOUS_DEV:
case MDE_NAME_IN_USE:
case MDE_NAME_ILLEGAL:
case MDE_ZONE_ADMIN:
return (buf);
char *buf,
char *emsg;
return (buf);
char *buf,
return (buf);
char *buf,
case MDE_INVAL_HS:
case MDE_FIX_INVAL_STATE:
case MDE_FIX_INVAL_HS_STATE:
case MDE_NOT_META:
case MDE_IS_DUMP:
case MDE_IS_META:
case MDE_IS_SWAPPED:
case MDE_NAME_SPACE:
case MDE_IN_SHARED_SET:
case MDE_NOT_IN_SET:
case MDE_NOT_DISK:
case MDE_CANT_CONFIRM:
case MDE_INVALID_PART:
case MDE_HAS_MDDB:
case MDE_NO_DB:
case MDE_CANTVERIFY_VTOC:
case MDE_NOT_LOCAL:
case MDE_DEVICES_NAME:
case MDE_REPCOMP_INVAL:
case MDE_REPCOMP_ONLY:
case MDE_INV_ROOT:
case MDE_MULTNM:
case MDE_TOO_MANY_PARTS:
case MDE_REPART_REPLICA:
return (buf);
char *buf,
case MDE_OVERLAP_MOUNTED:
case MDE_OVERLAP_SWAP:
case MDE_OVERLAP_DUMP:
return (buf);
char *buf,
case MDE_IS_MOUNTED:
case MDE_ALREADY:
case MDE_OVERLAP:
MDB_STR));
case MDE_SAME_DEVID:
return (buf);
char *buf,
case MDE_INVAL_UNIT:
case MDE_UNIT_NOT_SETUP:
case MDE_UNIT_ALREADY_SETUP:
case MDE_NOT_MM:
case MDE_IS_SM:
case MDE_IS_OPEN:
case MDE_C_WITH_INVAL_SM:
case MDE_RESYNC_ACTIVE:
case MDE_LAST_SM_RE:
case MDE_MIRROR_FULL:
case MDE_IN_UNAVAIL_STATE:
case MDE_IN_USE:
case MDE_SM_TOO_SMALL:
case MDE_NO_LABELED_SM:
case MDE_SM_OPEN_ERR:
case MDE_CANT_FIND_SM:
case MDE_LAST_SM:
case MDE_NO_READABLE_SM:
case MDE_SM_FAILED_COMPS:
case MDE_ILLEGAL_SM_STATE:
case MDE_RR_ALLOC_ERROR:
case MDE_MIRROR_OPEN_FAILURE:
case MDE_GROW_DELAYED:
case MDE_NOT_MT:
case MDE_HS_IN_USE:
case MDE_HAS_LOG:
case MDE_UNKNOWN_TYPE:
case MDE_NOT_STRIPE:
case MDE_NOT_RAID:
case MDE_NROWS:
case MDE_NCOMPS:
case MDE_NSUBMIRS:
case MDE_BAD_STRIPE:
case MDE_BAD_MIRROR:
case MDE_BAD_TRANS:
case MDE_BAD_RAID:
case MDE_RAID_OPEN_FAILURE:
case MDE_RAID_THREAD_FAILURE:
case MDE_RAID_NEED_FORCE:
case MDE_NO_LOG:
case MDE_RAID_DOI:
case MDE_RAID_LAST_ERRED:
case MDE_RAID_NOT_OKAY:
case MDE_RENAME_BUSY:
case MDE_RENAME_SOURCE_BAD:
case MDE_RENAME_TARGET_BAD:
case MDE_RENAME_CONFIG_ERROR:
case MDE_RENAME_ORDER:
case MDE_RECOVER_FAILED:
case MDE_SP_NOSPACE:
case MDE_SP_BADWMREAD:
case MDE_SP_BADWMWRITE:
case MDE_SP_BADWMMAGIC:
case MDE_SP_BADWMCRC:
case MDE_NOT_SP:
case MDE_SP_OVERLAP:
case MDE_SP_BAD_LENGTH:
case MDE_SP_NOSP:
case MDE_UNIT_TOO_LARGE:
case MDE_LOG_TOO_LARGE:
return (buf);
char *buf,
case MDE_CANT_FIND_COMP:
case MDE_REPL_INVAL_STATE:
case MDE_COMP_TOO_SMALL:
case MDE_COMP_OPEN_ERR:
case MDE_RAID_COMP_ERRED:
case MDE_MAXIO:
case MDE_SP_COMP_OPEN_ERR:
return (buf);
char *buf,
case MDE_HSP_CREATE_FAILURE:
case MDE_HSP_IN_USE:
case MDE_INVAL_HSP:
case MDE_HSP_BUSY:
case MDE_HSP_REF:
case MDE_HSP_ALREADY_SETUP:
case MDE_BAD_HSP:
case MDE_HSP_UNIT_TOO_LARGE:
return (buf);
char *buf,
case MDE_HS_RESVD:
case MDE_HS_CREATE_FAILURE:
case MDE_HS_INUSE:
case MDE_HS_UNIT_TOO_LARGE:
return (buf);
char *buf,
case MDE_TOOMANY_REPLICAS:
case MDE_REPLICA_TOOSMALL:
case MDE_NOTVERIFIED:
case MDE_DB_INVALID:
case MDE_DB_EXISTS:
case MDE_DB_MASTER:
case MDE_DB_TOOSMALL:
case MDE_DB_NORECORD:
case MDE_DB_NOSPACE:
case MDE_DB_NOTNOW:
case MDE_DB_NODB:
case MDE_DB_NOTOWNER:
case MDE_DB_STALE:
case MDE_DB_TOOFEW:
case MDE_DB_TAGDATA:
case MDE_DB_ACCOK:
case MDE_DB_NTAGDATA:
case MDE_DB_ACCNOTOK:
case MDE_DB_NOLOCBLK:
case MDE_DB_NOLOCNMS:
case MDE_DB_NODIRBLK:
case MDE_DB_NOTAGREC:
case MDE_DB_NOTAG:
case MDE_DB_BLKRANGE:
return (buf);
char *buf,
case MDE_DS_DUPHOST:
case MDE_DS_NOTNODENAME:
case MDE_DS_SELFNOTIN:
case MDE_DS_NODEHASSET:
case MDE_DS_NODENOSET:
case MDE_DS_NOOWNER:
case MDE_DS_NOTOWNER:
case MDE_DS_NODEISNOTOWNER:
case MDE_DS_NODEINSET:
case MDE_DS_NODENOTINSET:
case MDE_DS_SETNUMBUSY:
case MDE_DS_SETNUMNOTAVAIL:
case MDE_DS_SETNAMEBUSY:
case MDE_DS_DRIVENOTCOMMON:
case MDE_DS_DRIVEINSET:
case MDE_DS_DRIVENOTINSET:
case MDE_DS_DRIVEINUSE:
case MDE_DS_DUPDRIVE:
case MDE_DS_INVALIDSETNAME:
case MDE_DS_HASDRIVES:
case MDE_DS_SIDENUMNOTAVAIL:
case MDE_DS_SETNAMETOOLONG:
case MDE_DS_NODENAMETOOLONG:
case MDE_DS_OHACANTDELSELF:
case MDE_DS_HOSTNOSIDE:
case MDE_DS_SETLOCKED:
case MDE_DS_ULKSBADKEY:
case MDE_DS_LKSBADKEY:
case MDE_DS_WRITEWITHSULK:
case MDE_DS_SETCLEANUP:
case MDE_DS_CANTDELSELF:
case MDE_DS_HASMED:
case MDE_DS_TOOMANYALIAS:
case MDE_DS_ISMED:
case MDE_DS_ISNOTMED:
case MDE_DS_INVALIDMEDNAME:
case MDE_DS_ALIASNOMATCH:
case MDE_DS_NOMEDONHOST:
case MDE_DS_DRIVENOTONHOST:
case MDE_DS_CANTDELMASTER:
case MDE_DS_NOTINMEMBERLIST:
case MDE_DS_MNCANTDELSELF:
case MDE_DS_RPCVERSMISMATCH:
case MDE_DS_WITHDRAWMASTER:
case MDE_DS_CANTRESNARF:
case MDE_DS_INSUFQUORUM:
case MDE_DS_EXTENDEDNM:
case MDE_DS_PARTIALSET:
"\nTroubleshooting section, at http://docs.sun.com or from"
case MDE_DS_NOTNOW_RECONFIG:
case MDE_DS_NOTNOW_CMD:
case MDE_DS_COMMD_SEND_FAIL:
case MDE_DS_MASTER_ONLY:
case MDE_DS_SINGLEHOST:
case MDE_DS_AUTONOTSET:
case MDE_DS_INVALIDDEVID:
case MDE_DS_SETNOTIMP:
case MDE_DS_NOTSELFIDENTIFY:
return (buf);
case MDEC_VOID:
case MDEC_SYS:
case MDEC_RPC:
case MDEC_DEV:
case MDEC_USE:
case MDEC_MD:
case MDEC_COMP:
case MDEC_HSP:
case MDEC_HS:
case MDEC_MDDB:
case MDEC_DS:
case MDEC_OVERLAP:
return (buf);
time_t t;
const char *fmt,
char *p = buf;
return (buf);
const char *fmt,
char *emsg;
return (emsg);
const char *fmt,
char *emsg;
if (metasyslog) {
const char *fmt,
char *emsg;
if (metasyslog) {
const char *fmt,
if (metasyslog) {