[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openvz-criu
Subject:    [CRIU] [PATCH 1/3] log: add pr_err_once
From:       avagin () openvz ! org (Andrey Vagin)
Date:       2012-11-29 12:43:37
Message-ID: 1354193019-7979-1-git-send-email-avagin () openvz ! org
[Download RAW message or body]

This function prints an error message only once.

Signed-off-by: Andrey Vagin <avagin at openvz.org>
---
 include/log.h | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/include/log.h b/include/log.h
index d02c4a6..375dd38 100644
--- a/include/log.h
+++ b/include/log.h
@@ -30,6 +30,14 @@ extern void print_on_level(unsigned int loglevel, const char *format, ...)
 #define pr_info(fmt, ...)	\
 	print_on_level(LOG_INFO,	LOG_PREFIX fmt, ##__VA_ARGS__)
 
+#define pr_err_once(fmt, ...) ({	\
+	static bool __printed;		\
+	if (!__printed) {		\
+		print_on_level(LOG_ERROR,	"Error (%s:%d): " LOG_PREFIX fmt, __FILE__, __LINE__, ##__VA_ARGS__); \
+		__printed = 1;		\
+	}				\
+})
+
 #define pr_err(fmt, ...)	\
 	print_on_level(LOG_ERROR,	"Error (%s:%d): " LOG_PREFIX fmt, __FILE__, __LINE__, ##__VA_ARGS__)
 
-- 
1.7.11.7


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic