diff --git a/0001-Use-cmap-for-getting-cluster-name.patch b/0001-Use-cmap-for-getting-cluster-name.patch new file mode 100644 index 0000000..b40ba57 --- /dev/null +++ b/0001-Use-cmap-for-getting-cluster-name.patch @@ -0,0 +1,159 @@ +From 1110d13d756406a6188299bf68db4743cf7c41a3 Mon Sep 17 00:00:00 2001 +From: Goldwyn Rodrigues +Date: Sat, 21 Dec 2013 18:41:04 -0600 +Subject: [PATCH] Use cmap for getting cluster name + +--- + debugfs.ocfs2/Makefile | 2 +- + libo2cb/o2cb_abi.c | 79 +++++++++++++++++++++++++++----------------------- + o2cb.pc.in | 2 +- + o2cb_ctl/Makefile | 2 +- + 4 files changed, 46 insertions(+), 39 deletions(-) + +diff --git a/debugfs.ocfs2/Makefile b/debugfs.ocfs2/Makefile +index ca4c9a4..30dfa5f 100644 +--- a/debugfs.ocfs2/Makefile ++++ b/debugfs.ocfs2/Makefile +@@ -32,7 +32,7 @@ HFILES = \ + OBJS = $(subst .c,.o,$(CFILES)) + + LIBOCFS2_LIBS = -L$(TOPDIR)/libocfs2 -locfs2 +-LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb ++LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb $(DL_LIBS) + + MANS = debugfs.ocfs2.8 + +diff --git a/libo2cb/o2cb_abi.c b/libo2cb/o2cb_abi.c +index ae03595..40f8176 100644 +--- a/libo2cb/o2cb_abi.c ++++ b/libo2cb/o2cb_abi.c +@@ -35,6 +35,8 @@ + #include + #include + #include ++#include ++#include + + #include + +@@ -1966,52 +1968,57 @@ static errcode_t classic_list_clusters(char ***clusters) + + static errcode_t user_list_clusters(char ***clusters) + { +- errcode_t err = O2CB_ET_SERVICE_UNAVAILABLE; +- int rc, fd = -1; +- char buf[OCFS2_CONTROLD_MAXLINE]; ++ errcode_t ret = O2CB_ET_SERVICE_UNAVAILABLE; ++ void *lib_handle = NULL; ++ char **list; ++ int rv; + +- rc = ocfs2_client_connect(); +- if (rc < 0) { +- /* fprintf(stderr, "Unable to connect to ocfs2_controld: %s\n", +- strerror(-rc)); */ +- switch (rc) { +- case -EACCES: +- case -EPERM: +- err = O2CB_ET_PERMISSION_DENIED; +- break; ++ cmap_handle_t handle; ++ static int (*initialize)(cmap_handle_t *handle); ++ static int (*get_string)(cmap_handle_t handle, ++ const char *string, ++ char **name); ++ static int (*finalize)(cmap_handle_t handle); + +- default: +- err = O2CB_ET_SERVICE_UNAVAILABLE; +- break; +- } ++ ++ lib_handle = dlopen("libcmap.so", RTLD_NOW | RTLD_LOCAL); ++ if (!lib_handle) ++ return ret; ++ ++ initialize = dlsym(lib_handle, "cmap_initialize"); ++ if (!initialize) + goto out; +- } +- fd = rc; + +- rc = send_message(fd, CM_LISTCLUSTERS); +- if (rc) { +- /* fprintf(stderr, +- "Unable to send LISTCLUSTERS message: %s\n", +- strerror(-rc)); */ +- err = O2CB_ET_IO; ++ get_string = dlsym(lib_handle, "cmap_get_string"); ++ if (!get_string) + goto out; +- } + +- rc = receive_list(fd, buf, clusters); +- if (rc) { +- /* fprintf(stderr, "Error reading from daemon: %s\n", +- strerror(-rc)); */ +- err = O2CB_ET_IO; ++ finalize = dlsym(lib_handle, "cmap_finalize"); ++ if (!finalize) + goto out; +- } + +- err = 0; ++ rv = initialize(&handle); ++ if (rv != CS_OK) ++ goto out; + +-out: +- if (fd != -1) +- close(fd); ++ list = (char **)malloc(sizeof(char *) * 2); ++ if (!list) ++ goto out; + +- return err; ++ rv = get_string(handle, "totem.cluster_name", &list[0]); ++ if (rv != CS_OK) { ++ free(list); ++ ret = O2CB_ET_INTERNAL_FAILURE; ++ goto out; ++ } ++ ++ list[1] = NULL; ++ *clusters = list; ++ finalize(handle); ++ ret = 0; ++out: ++ dlclose(lib_handle); ++ return ret; + } + + errcode_t o2cb_list_clusters(char ***clusters) +diff --git a/o2cb.pc.in b/o2cb.pc.in +index be94b8a..f13c560 100644 +--- a/o2cb.pc.in ++++ b/o2cb.pc.in +@@ -7,5 +7,5 @@ Name: o2cb + Description: Library for accessing the ocfs2 cluster base (o2cb) + Version: @VERSION@ + Requires: com_err +-Libs: -L${libdir} -lo2cb ++Libs: -L${libdir} -lo2cb -ldl + Cflags: -I${includedir} +diff --git a/o2cb_ctl/Makefile b/o2cb_ctl/Makefile +index 5efcab4..8589748 100644 +--- a/o2cb_ctl/Makefile ++++ b/o2cb_ctl/Makefile +@@ -13,7 +13,7 @@ LIBTOOLS_INTERNAL_DEPS = $(TOPDIR)/libtools-internal/libtools-internal.a + LIBOCFS2_LIBS = -L$(TOPDIR)/libocfs2 -locfs2 + LIBOCFS2_DEPS = $(TOPDIR)/libocfs2/libocfs2.a + +-LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb ++LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb $(DL_LIBS) + LIBO2CB_DEPS = $(TOPDIR)/libo2cb/libo2cb.a + + LIBO2DLM_LIBS = -L$(TOPDIR)/libo2dlm -lo2dlm $(DL_LIBS) +-- +1.8.4 + diff --git a/0001-libo2cb-Remove-controld-actions-from-group-join-leav.patch b/0002-Remove-controld-dependency-in-group_join-leave.patch similarity index 87% rename from 0001-libo2cb-Remove-controld-actions-from-group-join-leav.patch rename to 0002-Remove-controld-dependency-in-group_join-leave.patch index 34c2055..6016aa9 100644 --- a/0001-libo2cb-Remove-controld-actions-from-group-join-leav.patch +++ b/0002-Remove-controld-dependency-in-group_join-leave.patch @@ -1,19 +1,22 @@ -From 2d1b78517ff14633f4b1cf4adddf6308721f9722 Mon Sep 17 00:00:00 2001 +From c863784d971acd7efddc415d5140b8846799162e Mon Sep 17 00:00:00 2001 From: Goldwyn Rodrigues -Date: Mon, 19 Aug 2013 08:20:32 -0500 -Subject: [PATCH] libo2cb: Remove controld actions from group join/leave +Date: Fri, 27 Dec 2013 09:20:52 -0600 +Subject: [PATCH] Remove controld dependency in group_join/leave --- - libo2cb/o2cb_abi.c | 152 +---------------------------------------------------- - 1 file changed, 2 insertions(+), 150 deletions(-) + libo2cb/o2cb_abi.c | 156 +++-------------------------------------------------- + 1 file changed, 7 insertions(+), 149 deletions(-) diff --git a/libo2cb/o2cb_abi.c b/libo2cb/o2cb_abi.c -index ae03595..4e689cd 100644 +index 40f8176..5eca49d 100644 --- a/libo2cb/o2cb_abi.c +++ b/libo2cb/o2cb_abi.c -@@ -1373,162 +1373,14 @@ static errcode_t user_parse_status(char **args, int *error, char **error_msg) +@@ -1373,164 +1373,22 @@ static errcode_t user_parse_status(char **args, int *error, char **error_msg) + } + static errcode_t user_begin_group_join(struct o2cb_cluster_desc *cluster, - struct o2cb_region_desc *region) +- struct o2cb_region_desc *region) ++ struct o2cb_region_desc *region) { - errcode_t err; - int rc; @@ -92,15 +95,19 @@ index ae03595..4e689cd 100644 - } - - err = 0; -- ++ errcode_t ret = 0; + -out: - if (err && (control_daemon_fd != -1)) { - close(control_daemon_fd); - control_daemon_fd = -1; - } -- ++ ret = o2cb_validate_cluster_name(cluster); ++ if (ret) ++ return ret; + - return err; -+ return 0; ++ return ret; } static errcode_t user_complete_group_join(struct o2cb_cluster_desc *cluster, @@ -177,5 +184,5 @@ index ae03595..4e689cd 100644 static errcode_t user_group_leave(struct o2cb_cluster_desc *cluster, -- -1.8.1.4 +1.8.4 diff --git a/0002-libo2cb-Remove-rest-of-controld-functions.patch b/0002-libo2cb-Remove-rest-of-controld-functions.patch deleted file mode 100644 index 845b523..0000000 --- a/0002-libo2cb-Remove-rest-of-controld-functions.patch +++ /dev/null @@ -1,450 +0,0 @@ -From 40b1211091b62a4884d1625fc04d476a07489ca3 Mon Sep 17 00:00:00 2001 -From: Goldwyn Rodrigues -Date: Mon, 19 Aug 2013 08:38:59 -0500 -Subject: [PATCH] libo2cb: Remove rest of controld functions - ---- - libo2cb/o2cb_abi.c | 388 +---------------------------------------------------- - 1 file changed, 2 insertions(+), 386 deletions(-) - -Index: ocfs2-tools-1.8.2+git.1361836695.ff84eb5/libo2cb/o2cb_abi.c -=================================================================== ---- ocfs2-tools-1.8.2+git.1361836695.ff84eb5.orig/libo2cb/o2cb_abi.c 2013-10-01 11:36:42.953751354 -0500 -+++ ocfs2-tools-1.8.2+git.1361836695.ff84eb5/libo2cb/o2cb_abi.c 2013-10-01 11:39:04.935088610 -0500 -@@ -46,7 +46,6 @@ - #define CLUSTER_STACK_FILE "/sys/fs/ocfs2/cluster_stack" - #define LOCKING_PROTOCOL_FILE "/sys/fs/ocfs2/max_locking_protocol" - #define OCFS2_STACK_LABEL_LEN 4 --#define CONTROL_DEVICE "/dev/misc/ocfs2_control" - - static errcode_t o2cb_validate_cluster_name(struct o2cb_cluster_desc *desc); - static errcode_t o2cb_validate_cluster_flags(struct o2cb_cluster_desc *desc, -@@ -106,8 +105,6 @@ static struct o2cb_stack user_stack = { - }; - - static struct o2cb_stack *current_stack; --static int control_daemon_fd = -1; --static int control_device_fd = -1; - - static char *configfs_path; - -@@ -1349,27 +1346,6 @@ static errcode_t classic_complete_group_ - return ret; - } - --static errcode_t user_parse_status(char **args, int *error, char **error_msg) --{ -- errcode_t err = O2CB_ET_IO; -- long result; -- char *ptr = NULL; -- -- result = strtol(args[0], &ptr, 10); -- if (ptr && *ptr != '\0') { -- /* fprintf(stderr, "Invalid error code string: %s", args[0]); */ -- } else if ((result == LONG_MIN) || (result == LONG_MAX) || -- (result < INT_MIN) || (result > INT_MAX)) { -- /* fprintf(stderr, "Error code %ld out of range", err); */ -- } else { -- *error_msg = args[1]; -- *error = result; -- err = 0; -- } -- -- return err; --} -- - static errcode_t user_begin_group_join(struct o2cb_cluster_desc *cluster, - struct o2cb_region_desc *region) - { -@@ -1386,90 +1362,7 @@ static errcode_t user_complete_group_joi - static errcode_t user_group_leave(struct o2cb_cluster_desc *cluster, - struct o2cb_region_desc *region) - { -- errcode_t err = O2CB_ET_SERVICE_UNAVAILABLE; -- int rc; -- int error; -- char *error_msg; -- client_message message; -- char *argv[OCFS2_CONTROLD_MAXARGS + 1]; -- char buf[OCFS2_CONTROLD_MAXLINE]; -- -- if (control_daemon_fd != -1) { -- /* fprintf(stderr, "Join in progress!\n"); */ -- err = O2CB_ET_INTERNAL_FAILURE; -- goto out; -- } -- -- rc = ocfs2_client_connect(); -- if (rc < 0) { -- /* fprintf(stderr, "Unable to connect to ocfs2_controld: %s\n", -- strerror(-rc)); */ -- switch (rc) { -- case -EACCES: -- case -EPERM: -- err = O2CB_ET_PERMISSION_DENIED; -- break; -- -- default: -- err = O2CB_ET_SERVICE_UNAVAILABLE; -- break; -- } -- goto out; -- } -- control_daemon_fd = rc; -- -- rc = send_message(control_daemon_fd, CM_UNMOUNT, OCFS2_FS_NAME, -- region->r_name, region->r_service); -- if (rc) { -- /* fprintf(stderr, "Unable to send UNMOUNT message: %s\n", -- strerror(-rc)); */ -- err = O2CB_ET_IO; -- goto out; -- } -- -- rc = receive_message(control_daemon_fd, buf, &message, argv); -- if (rc < 0) { -- /* fprintf(stderr, "Error reading from daemon: %s\n", -- strerror(-rc)); */ -- err = O2CB_ET_IO; -- goto out; -- } -- -- switch (message) { -- case CM_STATUS: -- err = user_parse_status(argv, &error, &error_msg); -- if (err) { -- /* fprintf(stderr, "Bad status message: %s\n", -- strerror(-rc)); */ -- goto out; -- } -- if (error) { -- /* fprintf(stderr, -- "Error %d from daemon: %s\n", -- error, error_msg); */ -- err = O2CB_ET_CONFIGURATION_ERROR; -- goto out; -- } -- break; -- -- default: -- /* fprintf(stderr, -- "Unexpected message %s from daemon\n", -- message_to_string(message)); */ -- err = O2CB_ET_INTERNAL_FAILURE; -- goto out; -- break; -- } -- -- err = 0; -- --out: -- if (control_daemon_fd != -1) { -- close(control_daemon_fd); -- control_daemon_fd = -1; -- } -- -- return err; -+ return 0; - } - - static errcode_t o2cb_validate_cluster_flags(struct o2cb_cluster_desc *desc, -@@ -1818,52 +1711,7 @@ static errcode_t classic_list_clusters(c - - static errcode_t user_list_clusters(char ***clusters) - { -- errcode_t err = O2CB_ET_SERVICE_UNAVAILABLE; -- int rc, fd = -1; -- char buf[OCFS2_CONTROLD_MAXLINE]; -- -- rc = ocfs2_client_connect(); -- if (rc < 0) { -- /* fprintf(stderr, "Unable to connect to ocfs2_controld: %s\n", -- strerror(-rc)); */ -- switch (rc) { -- case -EACCES: -- case -EPERM: -- err = O2CB_ET_PERMISSION_DENIED; -- break; -- -- default: -- err = O2CB_ET_SERVICE_UNAVAILABLE; -- break; -- } -- goto out; -- } -- fd = rc; -- -- rc = send_message(fd, CM_LISTCLUSTERS); -- if (rc) { -- /* fprintf(stderr, -- "Unable to send LISTCLUSTERS message: %s\n", -- strerror(-rc)); */ -- err = O2CB_ET_IO; -- goto out; -- } -- -- rc = receive_list(fd, buf, clusters); -- if (rc) { -- /* fprintf(stderr, "Error reading from daemon: %s\n", -- strerror(-rc)); */ -- err = O2CB_ET_IO; -- goto out; -- } -- -- err = 0; -- --out: -- if (fd != -1) -- close(fd); -- -- return err; -+ return 0; - } - - errcode_t o2cb_list_clusters(char ***clusters) -@@ -1991,83 +1839,6 @@ errcode_t o2cb_set_heartbeat_mode(char * - return ret; - } - --static errcode_t dump_list_to_string(char **dump_list, char **debug) --{ -- int i; -- size_t len, count = 0; -- char *ptr; -- -- for (i = 0; dump_list[i]; i++) -- count += strlen(dump_list[i]); -- -- *debug = malloc(sizeof(char) * (count + 1)); -- if (!*debug) -- return O2CB_ET_NO_MEMORY; -- -- ptr = *debug; -- ptr[count] = '\0'; -- for (i = 0; dump_list[i]; i++) { -- len = strlen(dump_list[i]); -- memcpy(ptr, dump_list[i], len); -- ptr += len; -- } -- -- return 0; --} -- --errcode_t o2cb_control_daemon_debug(char **debug) --{ -- errcode_t err = O2CB_ET_SERVICE_UNAVAILABLE; -- int rc, fd = -1; -- char buf[OCFS2_CONTROLD_MAXLINE]; -- char **dump_list = NULL; -- -- rc = ocfs2_client_connect(); -- if (rc < 0) { -- /* fprintf(stderr, "Unable to connect to ocfs2_controld: %s\n", -- strerror(-rc)); */ -- switch (rc) { -- case -EACCES: -- case -EPERM: -- err = O2CB_ET_PERMISSION_DENIED; -- break; -- -- default: -- err = O2CB_ET_SERVICE_UNAVAILABLE; -- break; -- } -- goto out; -- } -- fd = rc; -- -- rc = send_message(fd, CM_DUMP); -- if (rc) { -- /* fprintf(stderr, -- "Unable to send DUMP message: %s\n", -- strerror(-rc)); */ -- err = O2CB_ET_IO; -- goto out; -- } -- -- rc = receive_list(fd, buf, &dump_list); -- if (rc) { -- /* fprintf(stderr, "Error reading from daemon: %s\n", -- strerror(-rc)); */ -- err = O2CB_ET_IO; -- goto out; -- } -- -- err = dump_list_to_string(dump_list, debug); -- o2cb_free_dir_list(dump_list); -- --out: -- if (fd != -1) -- close(fd); -- -- return err; --} -- -- - errcode_t o2cb_get_hb_thread_pid (const char *cluster_name, const char *region_name, - pid_t *pid) - { -@@ -2171,161 +1942,6 @@ errcode_t o2cb_get_node_local(const char - - return 0; - } --/* -- * The handshake is pretty simple. We need to read all supported control -- * device protocols from the kernel. Once we've read them, we can write -- * the protocol we want to use. After that, we're good to go. -- * -- * Right now, we will just allow the T01 protocol and not write any -- * code to handle multiples. We'll add that later if and when it is -- * necessary. -- * -- * The versions read from the kernel are all 4 characers including the -- * newline. -- */ --#define OCFS2_CONTROL_PROTO "T01\n" --#define OCFS2_CONTROL_PROTO_LEN 4 --#define OCFS2_CONTROL_MESSAGE_SETNODE_OP "SETN" --#define OCFS2_CONTROL_MESSAGE_SETNODE_TOTAL_LEN 14 --#define OCFS2_CONTROL_MESSAGE_SETVERSION_OP "SETV" --#define OCFS2_CONTROL_MESSAGE_SETVERSION_TOTAL_LEN 11 --#define OCFS2_CONTROL_MESSAGE_DOWN_OP "DOWN" --#define OCFS2_CONTROL_MESSAGE_DOWN_TOTAL_LEN 47 --#define OCFS2_CONTROL_MESSAGE_NODENUM_LEN 8 --static errcode_t o2cb_control_handshake(unsigned int this_node, -- struct ocfs2_protocol_version *proto) --{ -- errcode_t err = 0; -- int found = 0; -- size_t ret; -- char buf[OCFS2_CONTROL_MESSAGE_SETNODE_TOTAL_LEN + 1]; -- -- if (control_device_fd == -1) { -- err = O2CB_ET_INTERNAL_FAILURE; -- goto out; -- } -- -- buf[OCFS2_CONTROL_PROTO_LEN] = '\0'; -- while (1) -- { -- ret = read(control_device_fd, buf, OCFS2_CONTROL_PROTO_LEN); -- if (ret == OCFS2_CONTROL_PROTO_LEN) { -- if (!found && !strcmp(buf, -- OCFS2_CONTROL_PROTO)) -- found = 1; -- continue; -- } -- -- if (ret != 0) -- err = O2CB_ET_IO; -- else if (!found) -- err = O2CB_ET_SERVICE_HANDSHAKE_UNAVAILABLE; /* no match */ -- break; -- } -- -- if (err) -- goto out; -- -- ret = write(control_device_fd, OCFS2_CONTROL_PROTO, -- OCFS2_CONTROL_PROTO_LEN); -- if (ret != OCFS2_CONTROL_PROTO_LEN) { -- err = O2CB_ET_IO; -- goto out; -- } -- -- snprintf(buf, OCFS2_CONTROL_MESSAGE_SETNODE_TOTAL_LEN + 1, -- OCFS2_CONTROL_MESSAGE_SETNODE_OP " %08X\n", this_node); -- ret = write(control_device_fd, buf, -- OCFS2_CONTROL_MESSAGE_SETNODE_TOTAL_LEN); -- if (ret != OCFS2_CONTROL_MESSAGE_SETNODE_TOTAL_LEN) -- err = O2CB_ET_IO; -- -- snprintf(buf, OCFS2_CONTROL_MESSAGE_SETVERSION_TOTAL_LEN + 1, -- OCFS2_CONTROL_MESSAGE_SETVERSION_OP " %02X %02X\n", -- proto->pv_major, proto->pv_minor); -- ret = write(control_device_fd, buf, -- OCFS2_CONTROL_MESSAGE_SETVERSION_TOTAL_LEN); -- if (ret != OCFS2_CONTROL_MESSAGE_SETVERSION_TOTAL_LEN) -- err = O2CB_ET_IO; -- --out: -- return err; --} -- --errcode_t o2cb_control_open(unsigned int this_node, -- struct ocfs2_protocol_version *proto) --{ -- errcode_t err = 0; -- int rc; -- -- if (!current_stack) { -- err = O2CB_ET_SERVICE_UNAVAILABLE; -- goto out; -- } -- -- if (control_device_fd != -1) -- goto out; -- -- rc = open(CONTROL_DEVICE, O_RDWR); -- if (rc < 0) { -- switch (errno) { -- default: -- err = O2CB_ET_INTERNAL_FAILURE; -- break; -- -- case ENOTDIR: -- case ENOENT: -- case EISDIR: -- err = O2CB_ET_SERVICE_DEV_UNAVAILABLE; -- break; -- -- case EACCES: -- case EPERM: -- case EROFS: -- err = O2CB_ET_PERMISSION_DENIED; -- break; -- } -- goto out; -- } -- -- control_device_fd = rc; -- -- err = o2cb_control_handshake(this_node, proto); -- if (err) { -- close(control_device_fd); -- control_device_fd = -1; -- } -- --out: -- return err; --} -- --void o2cb_control_close(void) --{ -- if (control_device_fd != -1) { -- close(control_device_fd); -- control_device_fd = -1; -- } --} -- --errcode_t o2cb_control_node_down(const char *uuid, unsigned int nodeid) --{ -- errcode_t err = 0; -- size_t ret; -- char buf[OCFS2_CONTROL_MESSAGE_DOWN_TOTAL_LEN + 1]; -- -- if (control_device_fd == -1) -- return O2CB_ET_INTERNAL_FAILURE; -- -- snprintf(buf, OCFS2_CONTROL_MESSAGE_DOWN_TOTAL_LEN + 1, -- "DOWN %.32s %08X\n", uuid, nodeid); -- ret = write(control_device_fd, buf, -- OCFS2_CONTROL_MESSAGE_DOWN_TOTAL_LEN); -- if (ret != OCFS2_CONTROL_MESSAGE_DOWN_TOTAL_LEN) -- err = O2CB_ET_IO; -- -- return err; --} - - errcode_t o2cb_get_hb_ctl_path(char *buf, int count) - { diff --git a/0008-mount.ocfs2-Read-stack-from-device-and-setup-stack-i.patch b/0003-Auto-setup-cluster_stack-based-on-what-is-on-disk.patch similarity index 78% rename from 0008-mount.ocfs2-Read-stack-from-device-and-setup-stack-i.patch rename to 0003-Auto-setup-cluster_stack-based-on-what-is-on-disk.patch index 555dbdc..7e283d5 100644 --- a/0008-mount.ocfs2-Read-stack-from-device-and-setup-stack-i.patch +++ b/0003-Auto-setup-cluster_stack-based-on-what-is-on-disk.patch @@ -1,15 +1,19 @@ -From 5d0bffdbbadd38173a9bfbf4ffb8d455b5f0b990 Mon Sep 17 00:00:00 2001 +From 4b99b5a6042fe9b33079df64ab13817a309de528 Mon Sep 17 00:00:00 2001 From: Goldwyn Rodrigues -Date: Tue, 3 Sep 2013 07:40:39 -0500 -Subject: [PATCH] mount.ocfs2: Read stack from device and setup stack if not - present +Date: Fri, 27 Dec 2013 09:52:09 -0600 +Subject: [PATCH] Auto setup cluster_stack based on what is on disk -Note, this removes cman as the possible user stack. +This happens only the first time. +mount.ocfs2 reads the stack from the filesystems superblock. If the +stack is not setup, it will modprobe the modules and write the +appropriate stack name to cluster_stack file. +If it is already present, it tries to edit/re-write it, if different. +If it fails, the mount fails. --- include/o2cb/o2cb.h | 1 + - libo2cb/o2cb_abi.c | 103 ++++++++++++++++++++++++++++++++++++++++++++++ + libo2cb/o2cb_abi.c | 104 ++++++++++++++++++++++++++++++++++++++++++++++ mount.ocfs2/mount.ocfs2.c | 6 +++ - 3 files changed, 110 insertions(+) + 3 files changed, 111 insertions(+) diff --git a/include/o2cb/o2cb.h b/include/o2cb/o2cb.h index d512cf9..5ef9754 100644 @@ -23,7 +27,7 @@ index d512cf9..5ef9754 100644 #endif /* _O2CB_H */ diff --git a/libo2cb/o2cb_abi.c b/libo2cb/o2cb_abi.c -index 26ed848..6d1e41a 100644 +index 5eca49d..c751abf 100644 --- a/libo2cb/o2cb_abi.c +++ b/libo2cb/o2cb_abi.c @@ -29,6 +29,7 @@ @@ -34,15 +38,7 @@ index 26ed848..6d1e41a 100644 #include #include #include -@@ -103,6 +104,7 @@ static struct o2cb_stack_ops user_ops = { - .group_leave = user_group_leave, - }; - static struct o2cb_stack user_stack = { -+ .s_name = "pcmk", - .s_ops = &user_ops, - }; - -@@ -142,6 +144,22 @@ static ssize_t read_single_line_file(const char *file, char *line, +@@ -145,6 +146,22 @@ static ssize_t read_single_line_file(const char *file, char *line, return ret; } @@ -65,7 +61,7 @@ index 26ed848..6d1e41a 100644 static ssize_t read_stack_file(char *line, size_t count) { return read_single_line_file(CLUSTER_STACK_FILE, line, count); -@@ -2017,3 +2035,88 @@ errcode_t o2cb_get_hb_ctl_path(char *buf, int count) +@@ -2383,3 +2400,90 @@ errcode_t o2cb_get_hb_ctl_path(char *buf, int count) return 0; } @@ -132,15 +128,17 @@ index 26ed848..6d1e41a 100644 + } else if (len == -ENOENT) { + if (!modprobe_performed) { + perform_modprobe("ocfs2"); -+ if (!strncmp(stack_name, user_stack.s_name, -+ OCFS2_STACK_LABEL_LEN)) ++ if ((!strncmp(stack_name, OCFS2_PCMK_CLUSTER_STACK, ++ OCFS2_STACK_LABEL_LEN)) || ++ (!strncmp(stack_name, OCFS2_CMAN_CLUSTER_STACK, ++ OCFS2_STACK_LABEL_LEN))) + perform_modprobe(USER_KERNEL_MODULE); + else if (!strncmp(stack_name, classic_stack.s_name, + OCFS2_STACK_LABEL_LEN)) + perform_modprobe(O2CB_KERNEL_MODULE); + + write_single_line_file(CLUSTER_STACK_FILE, stack_name, -+ strlen(stack_name)); ++ OCFS2_STACK_LABEL_LEN); + write_performed = 1; + goto redo; + } else @@ -172,5 +170,5 @@ index f2ca5cb..c009d82 100644 ret = o2cb_init(); if (ret) { -- -1.8.1.4 +1.8.4 diff --git a/0003-Get-cluster-name-from-corosync-cmap.patch b/0003-Get-cluster-name-from-corosync-cmap.patch deleted file mode 100644 index 728e5e4..0000000 --- a/0003-Get-cluster-name-from-corosync-cmap.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 3f2b73105c5e09e17744ec249eed93c60124bd2d Mon Sep 17 00:00:00 2001 -From: Goldwyn Rodrigues -Date: Mon, 19 Aug 2013 18:05:04 -0500 -Subject: [PATCH] Get cluster name from corosync cmap - ---- - libo2cb/o2cb_abi.c | 20 ++++++++++++++++++++ - o2cb.pc.in | 2 +- - 2 files changed, 21 insertions(+), 1 deletion(-) - -diff --git a/libo2cb/o2cb_abi.c b/libo2cb/o2cb_abi.c -index 8e5d6ce..d00dd46 100644 ---- a/libo2cb/o2cb_abi.c -+++ b/libo2cb/o2cb_abi.c -@@ -37,6 +37,7 @@ - #include - - #include -+#include - - #include "o2cb/o2cb.h" - #include "o2cb/o2cb_client_proto.h" -@@ -1711,6 +1712,25 @@ static errcode_t classic_list_clusters(char ***clusters) - - static errcode_t user_list_clusters(char ***clusters) - { -+ cmap_handle_t handle; -+ char **list; -+ int rv; -+ -+ rv = cmap_initialize(&handle); -+ if (rv != CS_OK) -+ return O2CB_ET_SERVICE_UNAVAILABLE; -+ -+ /* We supply only one cluster_name */ -+ list = (char **)malloc(sizeof(char *) * 2); -+ rv = cmap_get_string(handle, "totem.cluster_name", &list[0]); -+ if (rv != CS_OK) { -+ free(list); -+ return O2CB_ET_INTERNAL_FAILURE; -+ } -+ -+ list[1] = NULL; -+ *clusters = list; -+ - return 0; - } - -diff --git a/o2cb.pc.in b/o2cb.pc.in -index be94b8a..3a47c36 100644 ---- a/o2cb.pc.in -+++ b/o2cb.pc.in -@@ -7,5 +7,5 @@ Name: o2cb - Description: Library for accessing the ocfs2 cluster base (o2cb) - Version: @VERSION@ - Requires: com_err --Libs: -L${libdir} -lo2cb -+Libs: -L${libdir} -lo2cb -lcmap - Cflags: -I${includedir} --- -1.8.1.4 - diff --git a/0004-Remove-controld-structures-from-debugfs.ocfs2.patch b/0004-Remove-controld-structures-from-debugfs.ocfs2.patch deleted file mode 100644 index ff20e42..0000000 --- a/0004-Remove-controld-structures-from-debugfs.ocfs2.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 394a3e7d2758331ba8aa6fc38957611d2447a73d Mon Sep 17 00:00:00 2001 -From: Goldwyn Rodrigues -Date: Mon, 19 Aug 2013 19:15:53 -0500 -Subject: [PATCH] Remove controld structures from debugfs.ocfs2 - ---- - debugfs.ocfs2/commands.c | 34 ---------------------------------- - 1 file changed, 34 deletions(-) - -diff --git a/debugfs.ocfs2/commands.c b/debugfs.ocfs2/commands.c -index e0b228a..c1c7589 100644 ---- a/debugfs.ocfs2/commands.c -+++ b/debugfs.ocfs2/commands.c -@@ -108,11 +108,6 @@ static struct command commands[] = { - "close", - "Close a device", - }, -- { "controld", -- do_controld, -- "controld dump", -- "Obtain information from ocfs2_controld", -- }, - { "curdev", - do_curdev, - "curdev", -@@ -894,35 +889,6 @@ static void do_lcd(char **args) - return ; - } - --static void do_controld_dump(char **args) --{ -- FILE *out; -- errcode_t ret; -- char *debug_buffer; -- -- ret = o2cb_control_daemon_debug(&debug_buffer); -- if (ret) { -- com_err(args[0], ret, "while obtaining the debug buffer"); -- return; -- } -- -- out = open_pager(gbls.interactive); -- fprintf(out, "%s", debug_buffer); -- close_pager(out); -- free(debug_buffer); --} -- --static void do_controld(char **args) --{ -- if (!args[1]) -- fprintf(stderr, "%s: Operation required\n", args[0]); -- else if (!strcmp(args[1], "dump")) -- do_controld_dump(args); -- else -- fprintf(stderr, "%s: Invalid operation: \"%s\"\n", -- args[0], args[1]); --} -- - static void do_curdev(char **args) - { - printf("%s\n", gbls.device ? gbls.device : "No device"); --- -1.8.1.4 - diff --git a/0009-mkfs.ocfs2-Abort-if-cluster-information-is-not-detec.patch b/0004-mkfs.ocfs2-Abort-if-cluster-information-is-not-detec.patch similarity index 96% rename from 0009-mkfs.ocfs2-Abort-if-cluster-information-is-not-detec.patch rename to 0004-mkfs.ocfs2-Abort-if-cluster-information-is-not-detec.patch index c62ba84..13e32fe 100644 --- a/0009-mkfs.ocfs2-Abort-if-cluster-information-is-not-detec.patch +++ b/0004-mkfs.ocfs2-Abort-if-cluster-information-is-not-detec.patch @@ -1,6 +1,6 @@ -From 14c5f3788b047024390c1a1ae40a0585417ed0d9 Mon Sep 17 00:00:00 2001 +From f7ea242d2bf76c71cfe7fd9555d44c2486610486 Mon Sep 17 00:00:00 2001 From: Goldwyn Rodrigues -Date: Wed, 4 Sep 2013 23:56:39 -0500 +Date: Fri, 27 Dec 2013 10:01:33 -0600 Subject: [PATCH] mkfs.ocfs2: Abort if cluster information is not detected --- @@ -82,5 +82,5 @@ index 13b4fb5..ca2004c 100644 int ocfs2_fill_cluster_information(State *s); int ocfs2_check_volume(State *s); -- -1.8.1.4 +1.8.4 diff --git a/0005-Check-for-DLM-kernel-version-in-user_begin_group_joi.patch b/0005-Check-for-DLM-kernel-version-in-user_begin_group_joi.patch deleted file mode 100644 index b0e9256..0000000 --- a/0005-Check-for-DLM-kernel-version-in-user_begin_group_joi.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 8563d603b7af2a32ef1e19337eaeb9d7cace730c Mon Sep 17 00:00:00 2001 -From: Goldwyn Rodrigues -Date: Mon, 19 Aug 2013 19:18:40 -0500 -Subject: [PATCH] Check for DLM kernel version in user_begin_group_join - -Since we just have to check if the DLM daemon is running, we -just check the kernel version running. Checking the kernel version -ensures that the dlm daemon is running. ---- - libo2cb/o2cb_abi.c | 11 +++++++++++ - 1 file changed, 11 insertions(+) - -diff --git a/libo2cb/o2cb_abi.c b/libo2cb/o2cb_abi.c -index d00dd46..26ed848 100644 ---- a/libo2cb/o2cb_abi.c -+++ b/libo2cb/o2cb_abi.c -@@ -38,6 +38,7 @@ - - #include - #include -+#include - - #include "o2cb/o2cb.h" - #include "o2cb/o2cb_client_proto.h" -@@ -1350,6 +1351,16 @@ static errcode_t classic_complete_group_join(struct o2cb_cluster_desc *cluster, - static errcode_t user_begin_group_join(struct o2cb_cluster_desc *cluster, - struct o2cb_region_desc *region) - { -+ uint32_t maj, min, pat; -+ int rv; -+ -+ rv = dlm_kernel_version(&maj, &min, &pat); -+ -+ if (rv < 0) -+ return O2CB_ET_SERVICE_UNAVAILABLE; -+ -+ if (maj < 6) -+ return O2CB_ET_INTERNAL_FAILURE; - return 0; - } - --- -1.8.1.4 - diff --git a/0010-mkfs-Setup-cluster_stack-if-not-setup-based-on-what-.patch b/0005-mkfs-Setup-cluster_stack-if-not-setup-based-on-what-.patch similarity index 86% rename from 0010-mkfs-Setup-cluster_stack-if-not-setup-based-on-what-.patch rename to 0005-mkfs-Setup-cluster_stack-if-not-setup-based-on-what-.patch index 058e89b..4d90ca4 100644 --- a/0010-mkfs-Setup-cluster_stack-if-not-setup-based-on-what-.patch +++ b/0005-mkfs-Setup-cluster_stack-if-not-setup-based-on-what-.patch @@ -1,6 +1,6 @@ -From 007b8d8d784a4108d5bde3cf1d0f1289a73957fd Mon Sep 17 00:00:00 2001 +From 8d9ac69db21d36c6e05a58a38da1091bbb70956d Mon Sep 17 00:00:00 2001 From: Goldwyn Rodrigues -Date: Tue, 1 Oct 2013 09:39:17 -0500 +Date: Fri, 27 Dec 2013 10:05:23 -0600 Subject: [PATCH] mkfs: Setup cluster_stack if not setup based on what is set --- @@ -28,5 +28,5 @@ index 75f0e7b..865dcc3 100644 if (ret) { com_err(s->progname, ret, -- -1.8.1.4 +1.8.4 diff --git a/0006-Add-cmap-and-dlm-libraries-in-the-tools.patch b/0006-Add-cmap-and-dlm-libraries-in-the-tools.patch deleted file mode 100644 index f8bfb44..0000000 --- a/0006-Add-cmap-and-dlm-libraries-in-the-tools.patch +++ /dev/null @@ -1,121 +0,0 @@ -From 4adc4d242f3f69808e7e2bed71337ff7e7966846 Mon Sep 17 00:00:00 2001 -From: Goldwyn Rodrigues -Date: Mon, 19 Aug 2013 19:20:19 -0500 -Subject: [PATCH] Add cmap and dlm libraries in the tools - ---- - fsck.ocfs2/Makefile | 2 +- - mkfs.ocfs2/Makefile | 2 +- - mount.ocfs2/Makefile | 2 +- - mounted.ocfs2/Makefile | 2 +- - o2cb.pc.in | 2 +- - o2cb_ctl/Makefile | 2 +- - ocfs2_hb_ctl/Makefile | 2 +- - tunefs.ocfs2/Makefile | 2 +- - 8 files changed, 8 insertions(+), 8 deletions(-) - -diff --git a/fsck.ocfs2/Makefile b/fsck.ocfs2/Makefile -index edc8dc5..d1c71f8 100644 ---- a/fsck.ocfs2/Makefile -+++ b/fsck.ocfs2/Makefile -@@ -12,7 +12,7 @@ LIBOCFS2_LIBS = -L$(TOPDIR)/libocfs2 -locfs2 - LIBOCFS2_DEPS = $(TOPDIR)/libocfs2/libocfs2.a - LIBO2DLM_LIBS = -L$(TOPDIR)/libo2dlm -lo2dlm $(DL_LIBS) - LIBO2DLM_DEPS = $(TOPDIR)/libo2dlm/libo2dlm.a --LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb -+LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb -lcmap -ldlm - LIBO2CB_DEPS = $(TOPDIR)/libo2cb/libo2cb.a - LIBTOOLS_INTERNAL_LIBS = -L$(TOPDIR)/libtools-internal -ltools-internal - LIBTOOLS_INTERNAL_DEPS = $(TOPDIR)/libtools-internal/libtools-internal.a -diff --git a/mkfs.ocfs2/Makefile b/mkfs.ocfs2/Makefile -index 5631e01..1fed073 100644 ---- a/mkfs.ocfs2/Makefile -+++ b/mkfs.ocfs2/Makefile -@@ -8,7 +8,7 @@ SBIN_PROGRAMS = mkfs.ocfs2 - LIBOCFS2_LIBS = -L$(TOPDIR)/libocfs2 -locfs2 - LIBOCFS2_DEPS = $(TOPDIR)/libocfs2/libocfs2.a - --LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb -+LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb -lcmap -ldlm - LIBO2CB_DEPS = $(TOPDIR)/libo2cb/libo2cb.a - - LIBO2DLM_LIBS = -L$(TOPDIR)/libo2dlm -lo2dlm $(DL_LIBS) -diff --git a/mount.ocfs2/Makefile b/mount.ocfs2/Makefile -index cf316bf..2736f5f 100644 ---- a/mount.ocfs2/Makefile -+++ b/mount.ocfs2/Makefile -@@ -10,7 +10,7 @@ LIBOCFS2_LIBS = -L$(TOPDIR)/libocfs2 -locfs2 - LIBOCFS2_DEPS = $(TOPDIR)/libocfs2/libocfs2.a - LIBO2DLM_LIBS = -L$(TOPDIR)/libo2dlm -lo2dlm $(DL_LIBS) - LIBO2DLM_DEPS = $(TOPDIR)/libo2dlm/libo2dlm.a --LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb -+LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb -ldlm -lcmap - LIBO2CB_DEPS = $(TOPDIR)/libo2cb/libo2cb.a - - DEFINES = -DVERSION=\"$(VERSION)\" -diff --git a/mounted.ocfs2/Makefile b/mounted.ocfs2/Makefile -index 8a574fb..3e18895 100644 ---- a/mounted.ocfs2/Makefile -+++ b/mounted.ocfs2/Makefile -@@ -8,7 +8,7 @@ LIBOCFS2_DEPS = $(TOPDIR)/libocfs2/libocfs2.a - LIBO2DLM_LIBS = -L$(TOPDIR)/libo2dlm -lo2dlm $(DL_LIBS) - LIBO2DLM_DEPS = $(TOPDIR)/libo2dlm/libo2dlm.a - --LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb -+LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb -ldlm -lcmap - LIBO2CB_DEPS = $(TOPDIR)/libo2cb/libo2cb.a - - LIBTOOLS_INTERNAL_LIBS = -L$(TOPDIR)/libtools-internal -ltools-internal -diff --git a/o2cb.pc.in b/o2cb.pc.in -index 3a47c36..3dd1f4e 100644 ---- a/o2cb.pc.in -+++ b/o2cb.pc.in -@@ -7,5 +7,5 @@ Name: o2cb - Description: Library for accessing the ocfs2 cluster base (o2cb) - Version: @VERSION@ - Requires: com_err --Libs: -L${libdir} -lo2cb -lcmap -+Libs: -L${libdir} -lo2cb -lcmap -ldlm - Cflags: -I${includedir} -diff --git a/o2cb_ctl/Makefile b/o2cb_ctl/Makefile -index 5efcab4..0da22dc 100644 ---- a/o2cb_ctl/Makefile -+++ b/o2cb_ctl/Makefile -@@ -13,7 +13,7 @@ LIBTOOLS_INTERNAL_DEPS = $(TOPDIR)/libtools-internal/libtools-internal.a - LIBOCFS2_LIBS = -L$(TOPDIR)/libocfs2 -locfs2 - LIBOCFS2_DEPS = $(TOPDIR)/libocfs2/libocfs2.a - --LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb -+LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb -ldlm -lcmap - LIBO2CB_DEPS = $(TOPDIR)/libo2cb/libo2cb.a - - LIBO2DLM_LIBS = -L$(TOPDIR)/libo2dlm -lo2dlm $(DL_LIBS) -diff --git a/ocfs2_hb_ctl/Makefile b/ocfs2_hb_ctl/Makefile -index 10fd8b1..d04e74e 100644 ---- a/ocfs2_hb_ctl/Makefile -+++ b/ocfs2_hb_ctl/Makefile -@@ -10,7 +10,7 @@ LIBOCFS2_LIBS = -L$(TOPDIR)/libocfs2 -locfs2 - LIBOCFS2_DEPS = $(TOPDIR)/libocfs2/libocfs2.a - LIBO2DLM_LIBS = -L$(TOPDIR)/libo2dlm -lo2dlm $(DL_LIBS) - LIBO2DLM_DEPS = $(TOPDIR)/libo2dlm/libo2dlm.a --LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb -+LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb -ldlm -lcmap - LIBO2CB_DEPS = $(TOPDIR)/libo2cb/libo2cb.a - - ifndef OCFS2_DYNAMIC_CTL -diff --git a/tunefs.ocfs2/Makefile b/tunefs.ocfs2/Makefile -index 585a68c..4e40d7d 100644 ---- a/tunefs.ocfs2/Makefile -+++ b/tunefs.ocfs2/Makefile -@@ -11,7 +11,7 @@ LIBOCFS2_DEPS = $(TOPDIR)/libocfs2/libocfs2.a - LIBO2DLM_LIBS = -L$(TOPDIR)/libo2dlm -lo2dlm $(DL_LIBS) - LIBO2DLM_DEPS = $(TOPDIR)/libo2dlm/libo2dlm.a - --LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb -+LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb -ldlm -lcmap - LIBO2CB_DEPS = $(TOPDIR)/libo2cb/libo2cb.a - - UNINST_LIBRARIES = libocfs2ne.a --- -1.8.1.4 - diff --git a/0007-Use-libdlm_lt.so.3-instead-of-libdlm_lt.so.patch b/0007-Use-libdlm_lt.so.3-instead-of-libdlm_lt.so.patch deleted file mode 100644 index 88d29ad..0000000 --- a/0007-Use-libdlm_lt.so.3-instead-of-libdlm_lt.so.patch +++ /dev/null @@ -1,25 +0,0 @@ -From a1f08ff644b53da04f5cd450476ae3db6bc14583 Mon Sep 17 00:00:00 2001 -From: Goldwyn Rodrigues -Date: Mon, 2 Sep 2013 11:15:31 -0500 -Subject: [PATCH] Use libdlm_lt.so.3 instead of libdlm_lt.so - ---- - libo2dlm/o2dlm.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libo2dlm/o2dlm.c b/libo2dlm/o2dlm.c -index dbc642b..9899694 100644 ---- a/libo2dlm/o2dlm.c -+++ b/libo2dlm/o2dlm.c -@@ -802,7 +802,7 @@ static errcode_t load_fsdlm(struct o2dlm_ctxt *ctxt) - goto out; - } - -- ctxt->ct_lib_handle = dlopen("libdlm_lt.so", -+ ctxt->ct_lib_handle = dlopen("libdlm_lt.so.3", - RTLD_NOW | RTLD_LOCAL); - if (!ctxt->ct_lib_handle) - goto out; --- -1.8.1.4 - diff --git a/0011-Use-dlm_lt-instead-of-dlm-for-DLM-libraries.patch b/0011-Use-dlm_lt-instead-of-dlm-for-DLM-libraries.patch deleted file mode 100644 index 75dc103..0000000 --- a/0011-Use-dlm_lt-instead-of-dlm-for-DLM-libraries.patch +++ /dev/null @@ -1,97 +0,0 @@ -From 86a0abd01111e80803218cdae3348d2563fa2c1b Mon Sep 17 00:00:00 2001 -From: Lidong Zhong -Date: Tue, 1 Oct 2013 09:48:27 -0500 -Subject: [PATCH] Use dlm_lt instead of dlm for DLM libraries - -References: bnc#838705 -Signed-off-by: Lidong Zhong ---- - fsck.ocfs2/Makefile | 2 +- - mkfs.ocfs2/Makefile | 2 +- - mount.ocfs2/Makefile | 2 +- - mounted.ocfs2/Makefile | 2 +- - ocfs2_hb_ctl/Makefile | 2 +- - tunefs.ocfs2/Makefile | 2 +- - 6 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/fsck.ocfs2/Makefile b/fsck.ocfs2/Makefile -index d1c71f8..e3032fa 100644 ---- a/fsck.ocfs2/Makefile -+++ b/fsck.ocfs2/Makefile -@@ -12,7 +12,7 @@ LIBOCFS2_LIBS = -L$(TOPDIR)/libocfs2 -locfs2 - LIBOCFS2_DEPS = $(TOPDIR)/libocfs2/libocfs2.a - LIBO2DLM_LIBS = -L$(TOPDIR)/libo2dlm -lo2dlm $(DL_LIBS) - LIBO2DLM_DEPS = $(TOPDIR)/libo2dlm/libo2dlm.a --LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb -lcmap -ldlm -+LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb -lcmap -ldlm_lt - LIBO2CB_DEPS = $(TOPDIR)/libo2cb/libo2cb.a - LIBTOOLS_INTERNAL_LIBS = -L$(TOPDIR)/libtools-internal -ltools-internal - LIBTOOLS_INTERNAL_DEPS = $(TOPDIR)/libtools-internal/libtools-internal.a -diff --git a/mkfs.ocfs2/Makefile b/mkfs.ocfs2/Makefile -index 1fed073..6840102 100644 ---- a/mkfs.ocfs2/Makefile -+++ b/mkfs.ocfs2/Makefile -@@ -8,7 +8,7 @@ SBIN_PROGRAMS = mkfs.ocfs2 - LIBOCFS2_LIBS = -L$(TOPDIR)/libocfs2 -locfs2 - LIBOCFS2_DEPS = $(TOPDIR)/libocfs2/libocfs2.a - --LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb -lcmap -ldlm -+LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb -lcmap -ldlm_lt - LIBO2CB_DEPS = $(TOPDIR)/libo2cb/libo2cb.a - - LIBO2DLM_LIBS = -L$(TOPDIR)/libo2dlm -lo2dlm $(DL_LIBS) -diff --git a/mount.ocfs2/Makefile b/mount.ocfs2/Makefile -index 2736f5f..e42958e 100644 ---- a/mount.ocfs2/Makefile -+++ b/mount.ocfs2/Makefile -@@ -10,7 +10,7 @@ LIBOCFS2_LIBS = -L$(TOPDIR)/libocfs2 -locfs2 - LIBOCFS2_DEPS = $(TOPDIR)/libocfs2/libocfs2.a - LIBO2DLM_LIBS = -L$(TOPDIR)/libo2dlm -lo2dlm $(DL_LIBS) - LIBO2DLM_DEPS = $(TOPDIR)/libo2dlm/libo2dlm.a --LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb -ldlm -lcmap -+LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb -ldlm_lt -lcmap - LIBO2CB_DEPS = $(TOPDIR)/libo2cb/libo2cb.a - - DEFINES = -DVERSION=\"$(VERSION)\" -diff --git a/mounted.ocfs2/Makefile b/mounted.ocfs2/Makefile -index 3e18895..577216e 100644 ---- a/mounted.ocfs2/Makefile -+++ b/mounted.ocfs2/Makefile -@@ -8,7 +8,7 @@ LIBOCFS2_DEPS = $(TOPDIR)/libocfs2/libocfs2.a - LIBO2DLM_LIBS = -L$(TOPDIR)/libo2dlm -lo2dlm $(DL_LIBS) - LIBO2DLM_DEPS = $(TOPDIR)/libo2dlm/libo2dlm.a - --LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb -ldlm -lcmap -+LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb -ldlm_lt -lcmap - LIBO2CB_DEPS = $(TOPDIR)/libo2cb/libo2cb.a - - LIBTOOLS_INTERNAL_LIBS = -L$(TOPDIR)/libtools-internal -ltools-internal -diff --git a/ocfs2_hb_ctl/Makefile b/ocfs2_hb_ctl/Makefile -index d04e74e..bd0ec9f 100644 ---- a/ocfs2_hb_ctl/Makefile -+++ b/ocfs2_hb_ctl/Makefile -@@ -10,7 +10,7 @@ LIBOCFS2_LIBS = -L$(TOPDIR)/libocfs2 -locfs2 - LIBOCFS2_DEPS = $(TOPDIR)/libocfs2/libocfs2.a - LIBO2DLM_LIBS = -L$(TOPDIR)/libo2dlm -lo2dlm $(DL_LIBS) - LIBO2DLM_DEPS = $(TOPDIR)/libo2dlm/libo2dlm.a --LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb -ldlm -lcmap -+LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb -ldlm_lt -lcmap - LIBO2CB_DEPS = $(TOPDIR)/libo2cb/libo2cb.a - - ifndef OCFS2_DYNAMIC_CTL -diff --git a/tunefs.ocfs2/Makefile b/tunefs.ocfs2/Makefile -index 4e40d7d..332cfb0 100644 ---- a/tunefs.ocfs2/Makefile -+++ b/tunefs.ocfs2/Makefile -@@ -11,7 +11,7 @@ LIBOCFS2_DEPS = $(TOPDIR)/libocfs2/libocfs2.a - LIBO2DLM_LIBS = -L$(TOPDIR)/libo2dlm -lo2dlm $(DL_LIBS) - LIBO2DLM_DEPS = $(TOPDIR)/libo2dlm/libo2dlm.a - --LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb -ldlm -lcmap -+LIBO2CB_LIBS = -L$(TOPDIR)/libo2cb -lo2cb -ldlm_lt -lcmap - LIBO2CB_DEPS = $(TOPDIR)/libo2cb/libo2cb.a - - UNINST_LIBRARIES = libocfs2ne.a --- -1.8.1.4 - diff --git a/ocfs2-tools.changes b/ocfs2-tools.changes index 802f68b..61eee8c 100644 --- a/ocfs2-tools.changes +++ b/ocfs2-tools.changes @@ -1,3 +1,23 @@ +------------------------------------------------------------------- +Fri Dec 27 17:56:21 UTC 2013 - rgoldwyn@suse.com + +- Patch re-factoring, so that we don't have to compile with ldlm + + 0001-Use-cmap-for-getting-cluster-name.patch + + 0002-Remove-controld-dependency-in-group_join-leave.patch + + 0003-Auto-setup-cluster_stack-based-on-what-is-on-disk.patch + + 0004-mkfs.ocfs2-Abort-if-cluster-information-is-not-detec.patch + + 0005-mkfs-Setup-cluster_stack-if-not-setup-based-on-what-.patch + - 0001-libo2cb-Remove-controld-actions-from-group-join-leav.patch + - 0002-libo2cb-Remove-rest-of-controld-functions.patch + - 0003-Get-cluster-name-from-corosync-cmap.patch + - 0004-Remove-controld-structures-from-debugfs.ocfs2.patch + - 0005-Check-for-DLM-kernel-version-in-user_begin_group_joi.patch + - 0006-Add-cmap-and-dlm-libraries-in-the-tools.patch + - 0008-mount.ocfs2-Read-stack-from-device-and-setup-stack-i.patch + - 0009-mkfs.ocfs2-Abort-if-cluster-information-is-not-detec.patch + - 0010-mkfs-Setup-cluster_stack-if-not-setup-based-on-what-.patch + - 0011-Use-dlm_lt-instead-of-dlm-for-DLM-libraries.patch + ------------------------------------------------------------------- Tue Oct 1 15:07:57 UTC 2013 - rgoldwyn@suse.com diff --git a/ocfs2-tools.spec b/ocfs2-tools.spec index c3d08e8..70915c2 100644 --- a/ocfs2-tools.spec +++ b/ocfs2-tools.spec @@ -1,7 +1,7 @@ # # spec file for package ocfs2-tools # -# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -47,16 +47,11 @@ Patch214: use-symlink-in-udev-rules.patch Patch215: ocfs2console-libraries-include-aio.patch Patch220: libocfs2-needs-libaio.patch Patch221: libocfs2-Change-asserts-to-error.patch -Patch222: 0001-libo2cb-Remove-controld-actions-from-group-join-leav.patch -Patch223: 0002-libo2cb-Remove-rest-of-controld-functions.patch -Patch224: 0003-Get-cluster-name-from-corosync-cmap.patch -Patch225: 0004-Remove-controld-structures-from-debugfs.ocfs2.patch -Patch226: 0005-Check-for-DLM-kernel-version-in-user_begin_group_joi.patch -Patch227: 0006-Add-cmap-and-dlm-libraries-in-the-tools.patch -Patch228: 0008-mount.ocfs2-Read-stack-from-device-and-setup-stack-i.patch -Patch229: 0009-mkfs.ocfs2-Abort-if-cluster-information-is-not-detec.patch -Patch230: 0010-mkfs-Setup-cluster_stack-if-not-setup-based-on-what-.patch -Patch231: 0011-Use-dlm_lt-instead-of-dlm-for-DLM-libraries.patch +Patch222: 0001-Use-cmap-for-getting-cluster-name.patch +Patch223: 0002-Remove-controld-dependency-in-group_join-leave.patch +Patch224: 0003-Auto-setup-cluster_stack-based-on-what-is-on-disk.patch +Patch225: 0004-mkfs.ocfs2-Abort-if-cluster-information-is-not-detec.patch +Patch226: 0005-mkfs-Setup-cluster_stack-if-not-setup-based-on-what-.patch BuildRequires: autoconf BuildRequires: e2fsprogs-devel @@ -173,11 +168,6 @@ managing the file system. %patch224 -p1 %patch225 -p1 %patch226 -p1 -%patch227 -p1 -%patch228 -p1 -%patch229 -p1 -%patch230 -p1 -%patch231 -p1 %build export PROJECT="ocfs2-tools"