Rebase cmn_err on vcmn_err and don't warn about missing \n
The cmn_err/vcmn_err functions are layered on top of the debug system which usually expects a newline at the end. However, there really doesn't need to be a newline there and there in fact should not be for the CE_CONT case so let's just drop the warning. Also we make a half-hearted attempt to handle a leading ! which means only send it to the syslog not the console. In this case we just send to the the debug logs and not the console.
This commit is contained in:
parent
f44078fad5
commit
4bd577d069
|
@ -724,10 +724,6 @@ spl_debug_vmsg(spl_debug_limit_state_t *cdls, int subsys, int mask,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unlikely(*(string_buf + needed - 1) != '\n'))
|
|
||||||
printk(KERN_INFO "format at %s:%d:%s doesn't end in newline\n",
|
|
||||||
file, line, fn);
|
|
||||||
|
|
||||||
header.ph_len = known_size + needed;
|
header.ph_len = known_size + needed;
|
||||||
debug_buf = (char *)page_address(tage->page) + tage->used;
|
debug_buf = (char *)page_address(tage->page) + tage->used;
|
||||||
|
|
||||||
|
|
|
@ -33,10 +33,8 @@
|
||||||
|
|
||||||
#define DEBUG_SUBSYSTEM S_GENERIC
|
#define DEBUG_SUBSYSTEM S_GENERIC
|
||||||
|
|
||||||
#ifndef NDEBUG
|
|
||||||
static char ce_prefix[CE_IGNORE][10] = { "", "NOTICE: ", "WARNING: ", "" };
|
static char ce_prefix[CE_IGNORE][10] = { "", "NOTICE: ", "WARNING: ", "" };
|
||||||
static char ce_suffix[CE_IGNORE][2] = { "", "\n", "\n", "" };
|
static char ce_suffix[CE_IGNORE][2] = { "", "\n", "\n", "" };
|
||||||
#endif
|
|
||||||
|
|
||||||
void
|
void
|
||||||
vpanic(const char *fmt, va_list ap)
|
vpanic(const char *fmt, va_list ap)
|
||||||
|
@ -48,20 +46,6 @@ vpanic(const char *fmt, va_list ap)
|
||||||
} /* vpanic() */
|
} /* vpanic() */
|
||||||
EXPORT_SYMBOL(vpanic);
|
EXPORT_SYMBOL(vpanic);
|
||||||
|
|
||||||
void
|
|
||||||
cmn_err(int ce, const char *fmt, ...)
|
|
||||||
{
|
|
||||||
char msg[MAXMSGLEN];
|
|
||||||
va_list ap;
|
|
||||||
|
|
||||||
va_start(ap, fmt);
|
|
||||||
vsnprintf(msg, MAXMSGLEN - 1, fmt, ap);
|
|
||||||
va_end(ap);
|
|
||||||
|
|
||||||
CERROR("%s", msg);
|
|
||||||
} /* cmn_err() */
|
|
||||||
EXPORT_SYMBOL(cmn_err);
|
|
||||||
|
|
||||||
void
|
void
|
||||||
vcmn_err(int ce, const char *fmt, va_list ap)
|
vcmn_err(int ce, const char *fmt, va_list ap)
|
||||||
{
|
{
|
||||||
|
@ -70,9 +54,26 @@ vcmn_err(int ce, const char *fmt, va_list ap)
|
||||||
if (ce == CE_PANIC)
|
if (ce == CE_PANIC)
|
||||||
vpanic(fmt, ap);
|
vpanic(fmt, ap);
|
||||||
|
|
||||||
if (ce != CE_NOTE) { /* suppress noise in stress testing */
|
if (ce != CE_NOTE) {
|
||||||
vsnprintf(msg, MAXMSGLEN - 1, fmt, ap);
|
vsnprintf(msg, MAXMSGLEN - 1, fmt, ap);
|
||||||
CERROR("%s%s%s", ce_prefix[ce], msg, ce_suffix[ce]);
|
|
||||||
|
if (fmt[0] == '!')
|
||||||
|
CDEBUG(D_INFO, "%s%s%s",
|
||||||
|
ce_prefix[ce], msg, ce_suffix[ce]);
|
||||||
|
else
|
||||||
|
CERROR("%s%s%s", ce_prefix[ce], msg, ce_suffix[ce]);
|
||||||
}
|
}
|
||||||
} /* vcmn_err() */
|
} /* vcmn_err() */
|
||||||
EXPORT_SYMBOL(vcmn_err);
|
EXPORT_SYMBOL(vcmn_err);
|
||||||
|
|
||||||
|
void
|
||||||
|
cmn_err(int ce, const char *fmt, ...)
|
||||||
|
{
|
||||||
|
va_list ap;
|
||||||
|
|
||||||
|
va_start(ap, fmt);
|
||||||
|
vcmn_err(ce, fmt, ap);
|
||||||
|
va_end(ap);
|
||||||
|
} /* cmn_err() */
|
||||||
|
EXPORT_SYMBOL(cmn_err);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue