28d3ae407e
This is an automated DistroBaker update from upstream sources. If you do not know what this is about or would like to opt out, contact the OSCI team. Source: https://src.fedoraproject.org/rpms/device-mapper-multipath.git#26a2cd7a3e189bf91263d17bc8a8c449cc043fb0
186 lines
5.3 KiB
Diff
186 lines
5.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Martin Wilck <mwilck@suse.com>
|
|
Date: Sat, 26 Sep 2020 00:32:05 +0200
|
|
Subject: [PATCH] libmultipath: introduce symbolic values for logsink
|
|
|
|
Reviewed-by: Benjamin Marzinski <bmarzins@redhat.com>
|
|
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
|
|
---
|
|
libmultipath/debug.c | 4 ++--
|
|
libmultipath/debug.h | 6 ++++++
|
|
libmultipath/devmapper.c | 4 ++--
|
|
multipath/main.c | 4 ++--
|
|
multipathd/main.c | 17 ++++++++---------
|
|
tests/globals.c | 3 ++-
|
|
tests/hwtable.c | 2 +-
|
|
7 files changed, 23 insertions(+), 17 deletions(-)
|
|
|
|
diff --git a/libmultipath/debug.c b/libmultipath/debug.c
|
|
index a1713b95..f9b77552 100644
|
|
--- a/libmultipath/debug.c
|
|
+++ b/libmultipath/debug.c
|
|
@@ -25,8 +25,8 @@ void dlog (int sink, int prio, const char * fmt, ...)
|
|
va_start(ap, fmt);
|
|
|
|
if (prio <= libmp_verbosity) {
|
|
- if (sink < 1) {
|
|
- if (sink == 0) {
|
|
+ if (sink != LOGSINK_SYSLOG) {
|
|
+ if (sink == LOGSINK_STDERR_WITH_TIME) {
|
|
time_t t = time(NULL);
|
|
struct tm *tb = localtime(&t);
|
|
char buff[16];
|
|
diff --git a/libmultipath/debug.h b/libmultipath/debug.h
|
|
index 1f3bc8be..b6ce70a7 100644
|
|
--- a/libmultipath/debug.h
|
|
+++ b/libmultipath/debug.h
|
|
@@ -12,3 +12,9 @@ extern int libmp_verbosity;
|
|
|
|
#define condlog(prio, fmt, args...) \
|
|
dlog(logsink, prio, fmt "\n", ##args)
|
|
+
|
|
+enum {
|
|
+ LOGSINK_STDERR_WITH_TIME = 0,
|
|
+ LOGSINK_STDERR_WITHOUT_TIME = -1,
|
|
+ LOGSINK_SYSLOG = 1,
|
|
+};
|
|
diff --git a/libmultipath/devmapper.c b/libmultipath/devmapper.c
|
|
index dfe95d2f..f8b180e1 100644
|
|
--- a/libmultipath/devmapper.c
|
|
+++ b/libmultipath/devmapper.c
|
|
@@ -104,8 +104,8 @@ dm_write_log (int level, const char *file, int line, const char *f, ...)
|
|
return;
|
|
|
|
va_start(ap, f);
|
|
- if (logsink < 1) {
|
|
- if (logsink == 0) {
|
|
+ if (logsink != LOGSINK_SYSLOG) {
|
|
+ if (logsink == LOGSINK_STDERR_WITH_TIME) {
|
|
time_t t = time(NULL);
|
|
struct tm *tb = localtime(&t);
|
|
char buff[16];
|
|
diff --git a/multipath/main.c b/multipath/main.c
|
|
index 98d93c58..9ac42869 100644
|
|
--- a/multipath/main.c
|
|
+++ b/multipath/main.c
|
|
@@ -817,7 +817,7 @@ main (int argc, char *argv[])
|
|
libmultipath_init();
|
|
if (atexit(dm_lib_exit) || atexit(libmultipath_exit))
|
|
condlog(1, "failed to register cleanup handler for libmultipath: %m");
|
|
- logsink = 0;
|
|
+ logsink = LOGSINK_STDERR_WITH_TIME;
|
|
if (init_config(DEFAULT_CONFIGFILE))
|
|
exit(RTVL_FAIL);
|
|
if (atexit(uninit_config))
|
|
@@ -968,7 +968,7 @@ main (int argc, char *argv[])
|
|
if (dev_type == DEV_UEVENT) {
|
|
openlog("multipath", 0, LOG_DAEMON);
|
|
setlogmask(LOG_UPTO(libmp_verbosity + 3));
|
|
- logsink = 1;
|
|
+ logsink = LOGSINK_SYSLOG;
|
|
}
|
|
|
|
set_max_fds(conf->max_fds);
|
|
diff --git a/multipathd/main.c b/multipathd/main.c
|
|
index ba257515..867f0f84 100644
|
|
--- a/multipathd/main.c
|
|
+++ b/multipathd/main.c
|
|
@@ -2780,7 +2780,7 @@ handle_signals(bool nonfatal)
|
|
}
|
|
if (log_reset_sig) {
|
|
condlog(2, "reset log (signal)");
|
|
- if (logsink == 1)
|
|
+ if (logsink == LOGSINK_SYSLOG)
|
|
log_thread_reset();
|
|
}
|
|
reconfig_sig = 0;
|
|
@@ -3033,7 +3033,7 @@ static void cleanup_child(void)
|
|
cleanup_dmevent_waiter();
|
|
|
|
cleanup_pidfile();
|
|
- if (logsink == 1)
|
|
+ if (logsink == LOGSINK_SYSLOG)
|
|
log_thread_stop();
|
|
|
|
cleanup_conf();
|
|
@@ -3076,7 +3076,7 @@ child (__attribute__((unused)) void *param)
|
|
setup_thread_attr(&uevent_attr, DEFAULT_UEVENT_STACKSIZE * 1024, 0);
|
|
setup_thread_attr(&waiter_attr, 32 * 1024, 1);
|
|
|
|
- if (logsink == 1) {
|
|
+ if (logsink == LOGSINK_SYSLOG) {
|
|
setup_thread_attr(&log_attr, 64 * 1024, 0);
|
|
log_thread_start(&log_attr);
|
|
pthread_attr_destroy(&log_attr);
|
|
@@ -3307,7 +3307,7 @@ main (int argc, char *argv[])
|
|
ANNOTATE_BENIGN_RACE_SIZED(&uxsock_timeout, sizeof(uxsock_timeout),
|
|
"Suppress complaints about this scalar variable");
|
|
|
|
- logsink = 1;
|
|
+ logsink = LOGSINK_SYSLOG;
|
|
|
|
if (getuid() != 0) {
|
|
fprintf(stderr, "need to be root\n");
|
|
@@ -3334,9 +3334,8 @@ main (int argc, char *argv[])
|
|
switch(arg) {
|
|
case 'd':
|
|
foreground = 1;
|
|
- if (logsink > 0)
|
|
- logsink = 0;
|
|
- //debug=1; /* ### comment me out ### */
|
|
+ if (logsink == LOGSINK_SYSLOG)
|
|
+ logsink = LOGSINK_STDERR_WITH_TIME;
|
|
break;
|
|
case 'v':
|
|
if (sizeof(optarg) > sizeof(char *) ||
|
|
@@ -3346,7 +3345,7 @@ main (int argc, char *argv[])
|
|
libmp_verbosity = verbosity = atoi(optarg);
|
|
break;
|
|
case 's':
|
|
- logsink = -1;
|
|
+ logsink = LOGSINK_STDERR_WITHOUT_TIME;
|
|
break;
|
|
case 'k':
|
|
logsink = 0;
|
|
@@ -3379,7 +3378,7 @@ main (int argc, char *argv[])
|
|
char * s = cmd;
|
|
char * c = s;
|
|
|
|
- logsink = 0;
|
|
+ logsink = LOGSINK_STDERR_WITH_TIME;
|
|
if (verbosity)
|
|
libmp_verbosity = verbosity;
|
|
conf = load_config(DEFAULT_CONFIGFILE);
|
|
diff --git a/tests/globals.c b/tests/globals.c
|
|
index 8add5eb7..fc0c07ad 100644
|
|
--- a/tests/globals.c
|
|
+++ b/tests/globals.c
|
|
@@ -1,9 +1,10 @@
|
|
#include "structs.h"
|
|
#include "config.h"
|
|
+#include "debug.h"
|
|
|
|
/* Required globals */
|
|
struct udev *udev;
|
|
-int logsink = -1;
|
|
+int logsink = LOGSINK_STDERR_WITHOUT_TIME;
|
|
struct config conf = {
|
|
.verbosity = 4,
|
|
};
|
|
diff --git a/tests/hwtable.c b/tests/hwtable.c
|
|
index 57f832b7..4dd0873b 100644
|
|
--- a/tests/hwtable.c
|
|
+++ b/tests/hwtable.c
|
|
@@ -53,7 +53,7 @@ struct hwt_state {
|
|
|
|
static struct config *_conf;
|
|
struct udev *udev;
|
|
-int logsink = -1;
|
|
+int logsink = LOGSINK_STDERR_WITHOUT_TIME;
|
|
|
|
struct config *get_multipath_config(void)
|
|
{
|
|
--
|
|
2.17.2
|
|
|