From: Martin Wilck <mwilck@xxxxxxxx> 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@xxxxxxxx> --- 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 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://listman.redhat.com/mailman/listinfo/dm-devel