@@ -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
@@ -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)
@@ -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 */
@@ -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];
@@ -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,
@@ -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) {
@@ -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);