device-mapper-multipath/0063-libmultipath-introduce-symbolic-values-for-logsink.patch
DistroBaker 28d3ae407e Merged update from upstream sources
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
2021-01-21 16:56:27 +00:00

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