summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Caulfield <pcaulfie@redhat.com>2005-02-07 14:45:38 +0000
committerPatrick Caulfield <pcaulfie@redhat.com>2005-02-07 14:45:38 +0000
commit5937664052b54fa91d7ef0d602af7c76b6822493 (patch)
treed886698dbb5860ecd13002b896a056337127eb22
parent2cf7b80d8fbb633d025b28b308b5064493405b9a (diff)
downloadlvm2-5937664052b54fa91d7ef0d602af7c76b6822493.tar.gz
lvm2-5937664052b54fa91d7ef0d602af7c76b6822493.tar.xz
lvm2-5937664052b54fa91d7ef0d602af7c76b6822493.zip
Revert last clvmd patch. More testing reveals that this just doesn't
work yet.
-rw-r--r--Makefile.in2
-rw-r--r--WHATS_NEW1
-rwxr-xr-xconfigure3
-rw-r--r--configure.in3
-rw-r--r--daemons/clvmd/Makefile.in2
-rw-r--r--daemons/clvmd/lvm-functions.c57
6 files changed, 25 insertions, 43 deletions
diff --git a/Makefile.in b/Makefile.in
index e07d6074..af63fc5d 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -37,7 +37,7 @@ endif
include make.tmpl
-daemons: lib tools
+daemons: lib
lib: include
tools: lib
po: tools daemons
diff --git a/WHATS_NEW b/WHATS_NEW
index 8a16e0ed..84e620ad 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -4,7 +4,6 @@ Version 2.01.04 -
Remove unused -f from pvmove.
Gulm clvmd doesn't report "connection refused" errors.
clvmd does a basic config file sanity check at startup.
- clvmd now uses liblvm2cmd to preload the lock state rather than popen
Version 2.01.03 - 1st February 2005
===================================
diff --git a/configure b/configure
index c0a8906c..7a6cff5d 100755
--- a/configure
+++ b/configure
@@ -7413,8 +7413,7 @@ fi;
echo "$as_me:$LINENO: result: $CMDLIB" >&5
echo "${ECHO_T}$CMDLIB" >&6
-if test x$CMDLIB = xyes -o x$CLVMD != none; then
- CMDLIB="yes"
+if test x$CMDLIB = xyes; then
CFLAGS="$CFLAGS -DCMDLIB"
fi
diff --git a/configure.in b/configure.in
index 332dbd7b..02ae9b89 100644
--- a/configure.in
+++ b/configure.in
@@ -344,8 +344,7 @@ AC_ARG_ENABLE(cmdlib, [ --enable-cmdlib Build shared command library],
CMDLIB=$enableval, CMDLIB=no)
AC_MSG_RESULT($CMDLIB)
-if test x$CMDLIB = xyes -o x$CLVMD != none; then
- CMDLIB="yes"
+if test x$CMDLIB = xyes; then
CFLAGS="$CFLAGS -DCMDLIB"
fi
diff --git a/daemons/clvmd/Makefile.in b/daemons/clvmd/Makefile.in
index 81dd3fc4..7ffd5156 100644
--- a/daemons/clvmd/Makefile.in
+++ b/daemons/clvmd/Makefile.in
@@ -52,7 +52,7 @@ TARGETS = \
include $(top_srcdir)/make.tmpl
CFLAGS += -D_REENTRANT -fno-strict-aliasing
-LIBS += -L../../tools -ldevmapper -llvm -Wl,-Bstatic -llvm2cmd -Wl,-Bdynamic -lpthread
+LIBS += -ldevmapper -llvm -lpthread
INSTALL_TARGETS = \
install_clvmd
diff --git a/daemons/clvmd/lvm-functions.c b/daemons/clvmd/lvm-functions.c
index 59bdedd8..61bb084f 100644
--- a/daemons/clvmd/lvm-functions.c
+++ b/daemons/clvmd/lvm-functions.c
@@ -43,7 +43,6 @@
#include "activate.h"
#include "hash.h"
#include "locking.h"
-#include "../tools/lvm2cmd.h"
static struct cmd_context *cmd = NULL;
static struct hash_table *lv_hash = NULL;
@@ -389,19 +388,29 @@ int do_check_lvm1(char *vgname)
return status == 1 ? 0 : EBUSY;
}
-static void cmdline_output(int level, const char *file, int line,
- const char *message)
+/*
+ * Ideally, clvmd should be started before any LVs are active
+ * but this may not be the case...
+ * I suppose this also comes in handy if clvmd crashes, not that it would!
+ */
+static void *get_initial_state()
{
- DEBUGLOG("lvm2output: %d: %s\n", level, message);
- if (level == LVM2_LOG_PRINT)
- {
- char lv[64], vg[64], flags[25];
- char uuid[65];
+ char lv[64], vg[64], flags[25];
+ char uuid[65];
+ char line[255];
+ FILE *lvs =
+ popen
+ ("lvm lvs --nolocking --noheadings -o vg_uuid,lv_uuid,lv_attr",
+ "r");
+
+ if (!lvs)
+ return NULL;
- if (sscanf(message, "%s %s %s\n", vg, lv, flags) == 3) {
+ while (fgets(line, sizeof(line), lvs)) {
+ if (sscanf(line, "%s %s %s\n", vg, lv, flags) == 3) {
/* States: s:suspended a:active S:dropped snapshot I:invalid snapshot */
- if (strlen(vg) == 38 && /* is is a valid UUID ? */
+ if (strlen(vg) == 38 && /* is is a valid UUID ? */
(flags[4] == 'a' || flags[4] == 's')) { /* is it active or suspended? */
/* Convert hyphen-separated UUIDs into one */
memcpy(&uuid[0], &vg[0], 6);
@@ -425,32 +434,8 @@ static void cmdline_output(int level, const char *file, int line,
}
}
}
-}
-
-/*
- * Ideally, clvmd should be started before any LVs are active
- * but this may not be the case...
- * I suppose this also comes in handy if clvmd crashes, not that it would!
- */
-static void get_initial_state()
-{
- void *lvm2_handle;
-
- lvm2_handle = lvm2_init();
- if (!lvm2_handle) {
- syslog(LOG_ERR, "Cannot get lvm2 context to initialise lock state\n");
- return;
- }
-
- lvm2_log_fn(cmdline_output);
-
- /* This doesn't seem to do what I think it does */
- lvm2_log_level(lvm2_handle, LVM2_LOG_PRINT);
-
- DEBUGLOG("Getting currently active LVs for lock state\n");
- lvm2_run(lvm2_handle, "lvs --nolocking --noheadings -o vg_uuid,lv_uuid,lv_attr");
-
- lvm2_exit(lvm2_handle);
+ fclose(lvs);
+ return NULL;
}
/* This checks some basic cluster-LVM configuration stuff */