From: Alasdair Kergon Date: Thu, 16 Jul 2009 13:13:33 +0000 (+0000) Subject: Fix so only log_error and log_fatal set EUNCLASSIFIED. X-Git-Tag: old-v2_02_50~114 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=b88fe43808e116eb6935d5a43659a5cf721a1540;p=lvm2.git Fix so only log_error and log_fatal set EUNCLASSIFIED. --- diff --git a/lib/log/log.c b/lib/log/log.c index dc3909f5b..1a7da4634 100644 --- a/lib/log/log.c +++ b/lib/log/log.c @@ -186,7 +186,7 @@ void print_log(int level, const char *file, int line, int dm_errno, if (dm_errno && !_lvm_errno) _lvm_errno = dm_errno; - if (_lvm2_log_fn || (_store_errmsg && (level == _LOG_ERR))) { + if (_lvm2_log_fn || (_store_errmsg && (level <= _LOG_ERR))) { va_start(ap, format); n = vsnprintf(buf2, sizeof(buf2) - 1, trformat, ap); va_end(ap); @@ -201,7 +201,7 @@ void print_log(int level, const char *file, int line, int dm_errno, message = &buf2[0]; } - if (_store_errmsg && (level == _LOG_ERR)) { + if (_store_errmsg && (level <= _LOG_ERR)) { if (!_lvm_errmsg) _lvm_errmsg = dm_strdup(message); else if ((newbuf = dm_realloc(_lvm_errmsg, diff --git a/lib/log/log.h b/lib/log/log.h index 563608803..9509e957e 100644 --- a/lib/log/log.h +++ b/lib/log/log.h @@ -43,6 +43,8 @@ #include /* strerror() */ #include +#define EUNCLASSIFIED -1 /* Generic error code */ + #define _LOG_STDERR 128 /* force things to go to stderr, even if loglevel would make them go to stdout */ #define _LOG_DEBUG 7 @@ -56,8 +58,8 @@ #define log_info(x...) LOG_LINE(_LOG_INFO, x) #define log_notice(x...) LOG_LINE(_LOG_NOTICE, x) #define log_warn(x...) LOG_LINE(_LOG_WARN | _LOG_STDERR, x) -#define log_err(x...) LOG_LINE(_LOG_ERR, x) -#define log_fatal(x...) LOG_LINE(_LOG_FATAL, x) +#define log_err(x...) LOG_LINE_WITH_ERRNO(_LOG_ERR, EUNCLASSIFIED, x) +#define log_fatal(x...) LOG_LINE_WITH_ERRNO(_LOG_FATAL, EUNCLASSIFIED, x) #define stack log_debug("") /* Backtrace on error */ #define log_very_verbose(args...) log_info(args)