[dm-devel] [PATCH v2 03/11] libmultipath: move all reservation key functions to prkey.c
mwilck at suse.com
mwilck at suse.com
Mon Aug 22 20:41:11 UTC 2022
From: Martin Wilck <mwilck at suse.com>
Also make parse_prkey() static, and avoid including libmpathpersist
headers in libmultipath. The only exception is now prkey.c, where
we pull in some public declarations from mpath_persist.h.
Signed-off-by: Martin Wilck <mwilck at suse.com>
---
libmultipath/Makefile | 2 +-
libmultipath/dict.c | 16 +-------------
libmultipath/dict.h | 2 --
libmultipath/prkey.c | 49 ++++++++++++++++++++++++++++++++++++++++++-
libmultipath/prkey.h | 3 +++
libmultipath/util.c | 32 ----------------------------
libmultipath/util.h | 2 --
7 files changed, 53 insertions(+), 53 deletions(-)
diff --git a/libmultipath/Makefile b/libmultipath/Makefile
index fb03200..033fc83 100644
--- a/libmultipath/Makefile
+++ b/libmultipath/Makefile
@@ -8,7 +8,7 @@ DEVLIB = libmultipath.so
LIBS = $(DEVLIB).$(SONAME)
VERSION_SCRIPT := libmultipath.version
-CPPFLAGS += -I$(mpathcmddir) -I$(mpathpersistdir) -I$(nvmedir)
+CPPFLAGS += -I$(mpathcmddir) -I$(nvmedir)
CFLAGS += $(LIB_CFLAGS)
LIBDEPS += -lpthread -ldl -ldevmapper -ludev -L$(mpathcmddir) -lmpathcmd -lurcu -laio
diff --git a/libmultipath/dict.c b/libmultipath/dict.c
index ad049cc..aa93fe4 100644
--- a/libmultipath/dict.c
+++ b/libmultipath/dict.c
@@ -24,10 +24,10 @@
#include <errno.h>
#include <inttypes.h>
#include <libudev.h>
-#include <mpath_persist.h>
#include "mpath_cmd.h"
#include "dict.h"
#include "strbuf.h"
+#include "prkey.h"
static void
do_set_int(vector strvec, void *ptr, int min, int max, const char *file,
@@ -1404,20 +1404,6 @@ set_reservation_key(vector strvec, struct be64 *be64_ptr, uint8_t *flags_ptr,
return 0;
}
-int
-print_reservation_key(struct strbuf *buff,
- struct be64 key, uint8_t flags, int source)
-{
- char *flagstr = "";
- if (source == PRKEY_SOURCE_NONE)
- return 0;
- if (source == PRKEY_SOURCE_FILE)
- return append_strbuf_quoted(buff, "file");
- if (flags & MPATH_F_APTPL_MASK)
- flagstr = ":aptpl";
- return print_strbuf(buff, "0x%" PRIx64 "%s", get_be64(key), flagstr);
-}
-
static int
def_reservation_key_handler(struct config *conf, vector strvec,
const char *file, int line_nr)
diff --git a/libmultipath/dict.h b/libmultipath/dict.h
index d80f990..15d9cba 100644
--- a/libmultipath/dict.h
+++ b/libmultipath/dict.h
@@ -16,7 +16,5 @@ int print_pgpolicy(struct strbuf *buff, long v);
int print_no_path_retry(struct strbuf *buff, long v);
int print_undef_off_zero(struct strbuf *buff, long v);
int print_dev_loss(struct strbuf *buff, unsigned long v);
-int print_reservation_key(struct strbuf *buff,
- struct be64 key, uint8_t flags, int source);
int print_off_int_undef(struct strbuf *buff, long v);
#endif /* _DICT_H */
diff --git a/libmultipath/prkey.c b/libmultipath/prkey.c
index d645f81..a215499 100644
--- a/libmultipath/prkey.c
+++ b/libmultipath/prkey.c
@@ -4,6 +4,7 @@
#include "config.h"
#include "util.h"
#include "propsel.h"
+#include "strbuf.h"
#include "prkey.h"
#include <sys/types.h>
#include <unistd.h>
@@ -12,11 +13,57 @@
#include <inttypes.h>
#include <errno.h>
#include <libudev.h>
-#include <mpath_persist.h>
+/* MPATH_F_APTPL_MASK is publicly defined in mpath_persist.h */
+#include <../libmpathpersist/mpath_persist.h>
#define PRKEY_READ 0
#define PRKEY_WRITE 1
+int
+print_reservation_key(struct strbuf *buff,
+ struct be64 key, uint8_t flags, int source)
+{
+ char *flagstr = "";
+ if (source == PRKEY_SOURCE_NONE)
+ return 0;
+ if (source == PRKEY_SOURCE_FILE)
+ return append_strbuf_quoted(buff, "file");
+ if (flags & MPATH_F_APTPL_MASK)
+ flagstr = ":aptpl";
+ return print_strbuf(buff, "0x%" PRIx64 "%s", get_be64(key), flagstr);
+}
+
+static int parse_prkey(const char *ptr, uint64_t *prkey)
+{
+ if (!ptr)
+ return 1;
+ if (*ptr == '0')
+ ptr++;
+ if (*ptr == 'x' || *ptr == 'X')
+ ptr++;
+ if (*ptr == '\0' || strlen(ptr) > 16)
+ return 1;
+ if (strlen(ptr) != strspn(ptr, "0123456789aAbBcCdDeEfF"))
+ return 1;
+ if (sscanf(ptr, "%" SCNx64 "", prkey) != 1)
+ return 1;
+ return 0;
+}
+
+int parse_prkey_flags(const char *ptr, uint64_t *prkey, uint8_t *flags)
+{
+ char *flagstr;
+
+ flagstr = strchr(ptr, ':');
+ *flags = 0;
+ if (flagstr) {
+ *flagstr++ = '\0';
+ if (strlen(flagstr) == 5 && strcmp(flagstr, "aptpl") == 0)
+ *flags = MPATH_F_APTPL_MASK;
+ }
+ return parse_prkey(ptr, prkey);
+}
+
static int do_prkey(int fd, char *wwid, char *keystr, int cmd)
{
char buf[4097];
diff --git a/libmultipath/prkey.h b/libmultipath/prkey.h
index 6739191..a16de10 100644
--- a/libmultipath/prkey.h
+++ b/libmultipath/prkey.h
@@ -13,6 +13,9 @@
"# prkey wwid\n" \
"#\n"
+int print_reservation_key(struct strbuf *buff,
+ struct be64 key, uint8_t flags, int source);
+int parse_prkey_flags(const char *ptr, uint64_t *prkey, uint8_t *flags);
int set_prkey(struct config *conf, struct multipath *mpp, uint64_t prkey,
uint8_t sa_flags);
int get_prkey(struct config *conf, struct multipath *mpp, uint64_t *prkey,
diff --git a/libmultipath/util.c b/libmultipath/util.c
index e7e7d4c..6979e74 100644
--- a/libmultipath/util.c
+++ b/libmultipath/util.c
@@ -13,7 +13,6 @@
#include <unistd.h>
#include <errno.h>
#include <libudev.h>
-#include <mpath_persist.h>
#include "util.h"
#include "debug.h"
@@ -333,37 +332,6 @@ int get_linux_version_code(void)
return _linux_version_code;
}
-int parse_prkey(const char *ptr, uint64_t *prkey)
-{
- if (!ptr)
- return 1;
- if (*ptr == '0')
- ptr++;
- if (*ptr == 'x' || *ptr == 'X')
- ptr++;
- if (*ptr == '\0' || strlen(ptr) > 16)
- return 1;
- if (strlen(ptr) != strspn(ptr, "0123456789aAbBcCdDeEfF"))
- return 1;
- if (sscanf(ptr, "%" SCNx64 "", prkey) != 1)
- return 1;
- return 0;
-}
-
-int parse_prkey_flags(const char *ptr, uint64_t *prkey, uint8_t *flags)
-{
- char *flagstr;
-
- flagstr = strchr(ptr, ':');
- *flags = 0;
- if (flagstr) {
- *flagstr++ = '\0';
- if (strlen(flagstr) == 5 && strcmp(flagstr, "aptpl") == 0)
- *flags = MPATH_F_APTPL_MASK;
- }
- return parse_prkey(ptr, prkey);
-}
-
int safe_write(int fd, const void *buf, size_t count)
{
while (count > 0) {
diff --git a/libmultipath/util.h b/libmultipath/util.h
index 5a44018..bede49d 100644
--- a/libmultipath/util.h
+++ b/libmultipath/util.h
@@ -24,8 +24,6 @@ char *convert_dev(char *dev, int is_path_device);
void setup_thread_attr(pthread_attr_t *attr, size_t stacksize, int detached);
int systemd_service_enabled(const char *dev);
int get_linux_version_code(void);
-int parse_prkey(const char *ptr, uint64_t *prkey);
-int parse_prkey_flags(const char *ptr, uint64_t *prkey, uint8_t *flags);
int safe_write(int fd, const void *buf, size_t count);
void set_max_fds(rlim_t max_fds);
int should_exit(void);
--
2.37.1
More information about the dm-devel
mailing list