]> granicus.if.org Git - spl/commitdiff
Rebase cmn_err on vcmn_err and don't warn about missing \n
authorBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 27 Oct 2009 22:54:45 +0000 (15:54 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 27 Oct 2009 23:13:35 +0000 (16:13 -0700)
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.

module/spl/spl-debug.c
module/spl/spl-err.c

index 6d71f4b82989d2e6b6becbca3b83ea98467b4cff..a3fcd74e0625d8524737f194841869adccc84438 100644 (file)
@@ -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;
 
index c4508dfa22f49df569cb2b966cdecbfe39866d54..8f46aae5ba256b1d5966f055471bdca1147d8828 100644 (file)
 
 #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);
+