diff --git a/module/spl/spl-debug.c b/module/spl/spl-debug.c index 6d71f4b829..a3fcd74e06 100644 --- a/module/spl/spl-debug.c +++ b/module/spl/spl-debug.c @@ -724,10 +724,6 @@ spl_debug_vmsg(spl_debug_limit_state_t *cdls, int subsys, int mask, 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; debug_buf = (char *)page_address(tage->page) + tage->used; diff --git a/module/spl/spl-err.c b/module/spl/spl-err.c index c4508dfa22..8f46aae5ba 100644 --- a/module/spl/spl-err.c +++ b/module/spl/spl-err.c @@ -33,10 +33,8 @@ #define DEBUG_SUBSYSTEM S_GENERIC -#ifndef NDEBUG static char ce_prefix[CE_IGNORE][10] = { "", "NOTICE: ", "WARNING: ", "" }; static char ce_suffix[CE_IGNORE][2] = { "", "\n", "\n", "" }; -#endif void vpanic(const char *fmt, va_list ap) @@ -48,20 +46,6 @@ vpanic(const char *fmt, va_list ap) } /* 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 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) vpanic(fmt, ap); - if (ce != CE_NOTE) { /* suppress noise in stress testing */ + if (ce != CE_NOTE) { 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() */ 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); +