[lvm-devel] [PATCH] Remove GULM support completely.

Christine Caulfield ccaulfie at redhat.com
Wed Aug 10 07:19:30 UTC 2011


On 09/08/11 17:39, Milan Broz wrote:
> This cluster locking is not used for years and is completely obsoleted.
>
> Signed-off-by: Milan Broz<mbroz at redhat.com>
>

Can I ACK this one? Please, please? can I?


Chrissie

  ---
>   configure.in                  |   50 +--
>   daemons/clvmd/Makefile.in     |   10 -
>   daemons/clvmd/clvmd-comms.h   |    7 -
>   daemons/clvmd/clvmd-gulm.c    | 1010 -----------------------------------------
>   daemons/clvmd/clvmd-gulm.h    |    9 -
>   daemons/clvmd/clvmd.c         |   29 +-
>   daemons/clvmd/lvm-functions.c |   46 +--
>   daemons/clvmd/lvm-functions.h |    2 +-
>   daemons/clvmd/tcp-comms.c     |  502 --------------------
>   daemons/clvmd/tcp-comms.h     |   13 -
>   lib/misc/configure.h.in       |    6 -
>   11 files changed, 8 insertions(+), 1676 deletions(-)
>   delete mode 100644 daemons/clvmd/clvmd-gulm.c
>   delete mode 100644 daemons/clvmd/clvmd-gulm.h
>   delete mode 100644 daemons/clvmd/tcp-comms.c
>   delete mode 100644 daemons/clvmd/tcp-comms.h
>
> diff --git a/configure.in b/configure.in
> index 24f1ec4..5b52c4d 100644
> --- a/configure.in
> +++ b/configure.in
> @@ -423,7 +423,6 @@ AC_MSG_CHECKING(whether to build cluster LVM daemon)
>   AC_ARG_WITH(clvmd,
>     [  --with-clvmd=TYPE       build cluster LVM Daemon
>                             The following cluster manager combinations are valid:
> -                           * cman,gulm             (RHEL4 or equivalent)
>                              * cman                  (RHEL5 or equivalent)
>                              * cman,corosync,openais (or selection of them)
>                              * singlenode            (localhost only)
> @@ -449,15 +448,10 @@ fi
>   dnl -- Express clvmd init script Required-Start / Required-Stop
>   CLVMD_CMANAGERS=""
>   dnl -- On RHEL4/RHEL5, qdiskd is started from a separate init script.
> -dnl -- Enable if we are build for either cman or gulm.
> +dnl -- Enable if we are build for cman.
>   CLVMD_NEEDS_QDISKD=no
>
>   dnl -- define build types
> -if [[ `expr x"$CLVMD" : '.*gulm.*'` != 0 ]]; then
> -	BUILDGULM=yes
> -	CLVMD_CMANAGERS="$CLVMD_CMANAGERS lock_gulmd"
> -	CLVMD_NEEDS_QDISKD=yes
> -fi
>   if [[ `expr x"$CLVMD" : '.*cman.*'` != 0 ]]; then
>   	BUILDCMAN=yes
>   	CLVMD_CMANAGERS="$CLVMD_CMANAGERS cman"
> @@ -475,14 +469,6 @@ if test x$CLVMD_NEEDS_QDISKD != xno; then
>   	CLVMD_CMANAGERS="$CLVMD_CMANAGERS qdiskd"
>   fi
>
> -dnl -- sanity check around user selection
> -if test x$BUILDGULM = xyes; then
> -	if test x$BUILDCOROSYNC = xyes || \
> -	   test x$BUILDOPENAIS = xyes; then
> -		AC_MSG_ERROR([requested clvmd configuration is not valid])
> -	fi
> -fi
> -
>   dnl -- define a soft bailout if we are autodetecting
>   soft_bailout() {
>   	NOTFOUND=1
> @@ -494,10 +480,9 @@ hard_bailout() {
>
>   dnl -- if clvmd=all then set soft_bailout (we don't want to error)
>   dnl -- and set all builds to yes. We need to do this here
> -dnl -- to skip the gulm + openais|corosync sanity check above.
> +dnl -- to skip the openais|corosync sanity check above.
>   if test x$CLVMD = xall; then
>   	bailout=soft_bailout
> -	BUILDGULM=yes
>   	BUILDCMAN=yes
>   	BUILDCOROSYNC=yes
>   	BUILDOPENAIS=yes
> @@ -519,28 +504,6 @@ check_lib_no_libs() {
>   	LIBS=$ac_check_lib_save_LIBS
>   }
>
> -dnl -- Look for gulm libraries if required.
> -if test x$BUILDGULM = xyes; then
> -	PKG_CHECK_MODULES(CCS, libccs, [HAVE_CCS=yes],
> -		[NOTFOUND=0
> -		AC_CHECK_HEADERS(ccs.h,,$bailout)
> -		check_lib_no_libs ccs ccs_connect
> -		if test $NOTFOUND = 0; then
> -			AC_MSG_RESULT([no pkg for libccs, using -lccs])
> -			CCS_LIBS="-lccs"
> -			HAVE_CCS=yes
> -		fi])
> -	PKG_CHECK_MODULES(GULM, libgulm, [HAVE_GULM=yes],
> -		[NOTFOUND=0
> -		AC_CHECK_HEADERS(libgulm.h,,$bailout)
> -		check_lib_no_libs gulm lg_core_login
> -		if test $NOTFOUND = 0; then
> -			AC_MSG_RESULT([no pkg for libgulm, using -lgulm])
> -			GULM_LIBS="-lgulm"
> -			HAVE_GULM=yes
> -		fi])
> -fi
> -
>   dnl -- Look for cman libraries if required.
>   if test x$BUILDCMAN = xyes; then
>   	PKG_CHECK_MODULES(CMAN, libcman, [HAVE_CMAN=yes],
> @@ -633,13 +596,6 @@ if test x$CLVMD = xall; then
>   	CLVMD=none
>   	CLVMD_CMANAGERS=""
>   	CLVMD_NEEDS_QDISKD=no
> -	if test x$HAVE_CCS = xyes&&  \
> -	   test x$HAVE_GULM = xyes; then
> -		AC_MSG_RESULT([Enabling clvmd gulm cluster manager])
> -		CLVMD="$CLVMD,gulm"
> -		CLVMD_CMANAGERS="$CLVMD_CMANAGERS lock_gulmd"
> -		CLVMD_NEEDS_QDISKD=yes
> -	fi
>   	if test x$HAVE_CMAN = xyes&&  \
>   	   test x$HAVE_DLM = xyes; then
>   		AC_MSG_RESULT([Enabling clvmd cman cluster manager])
> @@ -1346,8 +1302,6 @@ AC_SUBST(DM_IOCTLS)
>   AC_SUBST(DM_LIB_VERSION)
>   AC_SUBST(DM_LIB_PATCHLEVEL)
>   AC_SUBST(FSADM)
> -AC_SUBST(GULM_CFLAGS)
> -AC_SUBST(GULM_LIBS)
>   AC_SUBST(HAVE_LIBDL)
>   AC_SUBST(HAVE_REALTIME)
>   AC_SUBST(INTL)
> diff --git a/daemons/clvmd/Makefile.in b/daemons/clvmd/Makefile.in
> index ee19e6c..91fd273 100644
> --- a/daemons/clvmd/Makefile.in
> +++ b/daemons/clvmd/Makefile.in
> @@ -25,8 +25,6 @@ CPG_LIBS = @CPG_LIBS@
>   CPG_CFLAGS = @CPG_CFLAGS@
>   DLM_LIBS = @DLM_LIBS@
>   DLM_CFLAGS = @DLM_CFLAGS@
> -GULM_LIBS = @GULM_LIBS@
> -GULM_CFLAGS = @GULM_CFLAGS@
>   QUORUM_LIBS = @QUORUM_LIBS@
>   QUORUM_CFLAGS = @QUORUM_CFLAGS@
>   SALCK_LIBS = @SALCK_LIBS@
> @@ -42,13 +40,6 @@ ifeq ("@DEBUG@", "yes")
>   	DEFS += -DDEBUG
>   endif
>
> -ifneq (,$(findstring gulm,, "@CLVMD@,"))
> -	SOURCES += clvmd-gulm.c tcp-comms.c
> -	LMLIBS += $(CCS_LIBS) $(GULM_LIBS)
> -	CFLAGS += $(CCS_CFLAGS) $(GULM_CFLAGS)
> -	DEFS += -DUSE_GULM
> -endif
> -
>   ifneq (,$(findstring cman,, "@CLVMD@,"))
>   	SOURCES += clvmd-cman.c
>   	LMLIBS += $(CMAN_LIBS) $(CONFDB_LIBS) $(DLM_LIBS)
> @@ -76,7 +67,6 @@ ifneq (,$(findstring singlenode,,"@CLVMD@,"))
>   endif
>
>   ifeq ($(MAKECMDGOALS),distclean)
> -	SOURCES += clvmd-gulm.c tcp-comms.c
>   	SOURCES += clvmd-cman.c
>   	SOURCES += clvmd-openais.c
>   	SOURCES += clvmd-corosync.c
> diff --git a/daemons/clvmd/clvmd-comms.h b/daemons/clvmd/clvmd-comms.h
> index fbcfe8b..500bd57 100644
> --- a/daemons/clvmd/clvmd-comms.h
> +++ b/daemons/clvmd/clvmd-comms.h
> @@ -54,13 +54,6 @@ struct cluster_ops {
>
>   };
>
> -#ifdef USE_GULM
> -#  include "tcp-comms.h"
> -struct cluster_ops *init_gulm_cluster(void);
> -#define MAX_CSID_LEN 			GULM_MAX_CSID_LEN
> -#define MAX_CLUSTER_MEMBER_NAME_LEN	GULM_MAX_CLUSTER_MEMBER_NAME_LEN
> -#endif
> -
>   #ifdef USE_CMAN
>   #  include<netinet/in.h>
>   #  include "libcman.h"
> diff --git a/daemons/clvmd/clvmd-gulm.c b/daemons/clvmd/clvmd-gulm.c
> deleted file mode 100644
> index 3561004..0000000
> diff --git a/daemons/clvmd/clvmd-gulm.h b/daemons/clvmd/clvmd-gulm.h
> deleted file mode 100644
> index 9416f5c..0000000
> diff --git a/daemons/clvmd/clvmd.c b/daemons/clvmd/clvmd.c
> index 703268f..07883ea 100644
> --- a/daemons/clvmd/clvmd.c
> +++ b/daemons/clvmd/clvmd.c
> @@ -78,7 +78,6 @@ struct lvm_thread_cmd {
>   };
>
>   struct lvm_startup_params {
> -	int using_gulm;
>   	char **argv;
>   };
>
> @@ -101,7 +100,7 @@ static int child_pipe[2];
>   #define DFAIL_TIMEOUT    5
>   #define SUCCESS          0
>
> -typedef enum {IF_AUTO, IF_CMAN, IF_GULM, IF_OPENAIS, IF_COROSYNC, IF_SINGLENODE} if_type_t;
> +typedef enum {IF_AUTO, IF_CMAN, IF_OPENAIS, IF_COROSYNC, IF_SINGLENODE} if_type_t;
>
>   /* Prototypes for code further down */
>   static void sigusr2_handler(int sig);
> @@ -166,9 +165,6 @@ static void usage(const char *prog, FILE *file)
>   #ifdef USE_OPENAIS
>   		"openais "
>   #endif
> -#ifdef USE_GULM
> -		"gulm "
> -#endif
>   #ifdef USE_SINGLENODE
>   		"singlenode "
>   #endif
> @@ -342,7 +338,6 @@ int main(int argc, char *argv[])
>   	int start_timeout = 0;
>   	if_type_t cluster_iface = IF_AUTO;
>   	sigset_t ss;
> -	int using_gulm = 0;
>   	int debug_opt = 0;
>   	debug_t debug_arg = DEBUG_OFF;
>   	int clusterwide_opt = 0;
> @@ -473,7 +468,7 @@ int main(int argc, char *argv[])
>
>   	/* Set up signal handlers, USR1 is for cluster change notifications (in cman)
>   	   USR2 causes child threads to exit.
> -	   HUP causes gulm version to re-read nodes list from CCS.
> +	   HUP causes to re-read nodes list from CCS.
>   	   PIPE should be ignored */
>   	signal(SIGUSR2, sigusr2_handler);
>   	signal(SIGHUP,  sighup_handler);
> @@ -505,16 +500,6 @@ int main(int argc, char *argv[])
>   		syslog(LOG_NOTICE, "Cluster LVM daemon started - connected to CMAN");
>   	}
>   #endif
> -#ifdef USE_GULM
> -	if (!clops)
> -		if ((cluster_iface == IF_AUTO || cluster_iface == IF_GULM)&&  (clops = init_gulm_cluster())) {
> -			max_csid_len = GULM_MAX_CSID_LEN;
> -			max_cluster_message = GULM_MAX_CLUSTER_MESSAGE;
> -			max_cluster_member_name_len = GULM_MAX_CLUSTER_MEMBER_NAME_LEN;
> -			using_gulm = 1;
> -			syslog(LOG_NOTICE, "Cluster LVM daemon started - connected to GULM");
> -		}
> -#endif
>   #ifdef USE_COROSYNC
>   	if (!clops)
>   		if (((cluster_iface == IF_AUTO || cluster_iface == IF_COROSYNC)&&  (clops = init_corosync_cluster()))) {
> @@ -580,14 +565,10 @@ int main(int argc, char *argv[])
>
>   	/* Don't let anyone else to do work until we are started */
>   	pthread_mutex_lock(&lvm_start_mutex);
> -	lvm_params.using_gulm = using_gulm;
>   	lvm_params.argv = argv;
>   	pthread_create(&lvm_thread, NULL, lvm_thread_fn,&lvm_params);
>
>   	/* Tell the rest of the cluster our version number */
> -	/* CMAN can do this immediately, gulm needs to wait until
> -	   the core initialisation has finished and the node list
> -	   has been gathered */
>   	if (clops->cluster_init_completed)
>   		clops->cluster_init_completed();
>
> @@ -625,7 +606,7 @@ int main(int argc, char *argv[])
>   	return 0;
>   }
>
> -/* Called when the GuLM cluster layer has completed initialisation.
> +/* Called when the cluster layer has completed initialisation.
>      We send the version message */
>   void clvmd_cluster_init_completed(void)
>   {
> @@ -1965,7 +1946,7 @@ static void *lvm_thread_fn(void *arg)
>   	pthread_sigmask(SIG_BLOCK,&ss, NULL);
>
>   	/* Initialise the interface to liblvm */
> -	init_clvm(lvm_params->using_gulm, lvm_params->argv);
> +	init_clvm(lvm_params->argv);
>
>   	/* Allow others to get moving */
>   	pthread_mutex_unlock(&lvm_start_mutex);
> @@ -2222,8 +2203,6 @@ static if_type_t parse_cluster_interface(char *ifname)
>   		iface = IF_AUTO;
>   	if (!strcmp(ifname, "cman"))
>   		iface = IF_CMAN;
> -	if (!strcmp(ifname, "gulm"))
> -		iface = IF_GULM;
>   	if (!strcmp(ifname, "openais"))
>   		iface = IF_OPENAIS;
>   	if (!strcmp(ifname, "corosync"))
> diff --git a/daemons/clvmd/lvm-functions.c b/daemons/clvmd/lvm-functions.c
> index c10ce9d..d2c89d9 100644
> --- a/daemons/clvmd/lvm-functions.c
> +++ b/daemons/clvmd/lvm-functions.c
> @@ -650,46 +650,6 @@ int do_refresh_cache(void)
>   	return 0;
>   }
>
> -
> -/* Only called at gulm startup. Drop any leftover VG or P_orphan locks
> -   that might be hanging around if we died for any reason
> -*/
> -static void drop_vg_locks(void)
> -{
> -	char vg[128];
> -	char line[255];
> -	FILE *vgs =
> -	    popen
> -	    (LVM_PATH " pvs  --config 'log{command_names=0 prefix=\"\"}' --nolocking --noheadings -o vg_name", "r");
> -
> -	sync_unlock("P_" VG_ORPHANS, LCK_EXCL);
> -	sync_unlock("P_" VG_GLOBAL, LCK_EXCL);
> -
> -	if (!vgs)
> -		return;
> -
> -	while (fgets(line, sizeof(line), vgs)) {
> -		char *vgend;
> -		char *vgstart;
> -
> -		if (line[strlen(line)-1] == '\n')
> -			line[strlen(line)-1] = '\0';
> -
> -		vgstart = line + strspn(line, " ");
> -		vgend = vgstart + strcspn(vgstart, " ");
> -		*vgend = '\0';
> -
> -		if (strncmp(vgstart, "WARNING:", 8) == 0)
> -			continue;
> -
> -		sprintf(vg, "V_%s", vgstart);
> -		sync_unlock(vg, LCK_EXCL);
> -
> -	}
> -	if (fclose(vgs))
> -		DEBUGLOG("vgs fclose failed: %s\n", strerror(errno));
> -}
> -
>   /*
>    * Handle VG lock - drop metadata or update lvmcache state
>    */
> @@ -920,7 +880,7 @@ void lvm_do_fs_unlock(void)
>   }
>
>   /* Called to initialise the LVM context of the daemon */
> -int init_clvm(int using_gulm, char **argv)
> +int init_clvm(char **argv)
>   {
>   	/* Use LOG_DAEMON for syslog messages instead of LOG_USER */
>   	init_syslog(LOG_DAEMON);
> @@ -942,10 +902,6 @@ int init_clvm(int using_gulm, char **argv)
>   	check_config();
>   	init_ignore_suspended_devices(1);
>
> -	/* Remove any non-LV locks that may have been left around */
> -	if (using_gulm)
> -		drop_vg_locks();
> -
>   	get_initial_state(argv);
>
>   	/* Trap log messages so we can pass them back to the user */
> diff --git a/daemons/clvmd/lvm-functions.h b/daemons/clvmd/lvm-functions.h
> index a132f4a..f9c43b7 100644
> --- a/daemons/clvmd/lvm-functions.h
> +++ b/daemons/clvmd/lvm-functions.h
> @@ -27,7 +27,7 @@ extern int post_lock_lv(unsigned char lock_cmd, unsigned char lock_flags,
>   			char *resource);
>   extern int do_check_lvm1(const char *vgname);
>   extern int do_refresh_cache(void);
> -extern int init_clvm(int using_gulm, char **argv);
> +extern int init_clvm(char **argv);
>   extern void destroy_lvm(void);
>   extern void init_lvhash(void);
>   extern void destroy_lvhash(void);
> diff --git a/daemons/clvmd/tcp-comms.c b/daemons/clvmd/tcp-comms.c
> deleted file mode 100644
> index 5f86556..0000000
> diff --git a/daemons/clvmd/tcp-comms.h b/daemons/clvmd/tcp-comms.h
> deleted file mode 100644
> index 9260e12..0000000
> diff --git a/lib/misc/configure.h.in b/lib/misc/configure.h.in
> index 65f6332..16e290a 100644
> --- a/lib/misc/configure.h.in
> +++ b/lib/misc/configure.h.in
> @@ -84,9 +84,6 @@
>   /* Define to 1 if canonicalize_file_name is available. */
>   #undef HAVE_CANONICALIZE_FILE_NAME
>
> -/* Define to 1 if you have the<ccs.h>  header file. */
> -#undef HAVE_CCS_H
> -
>   /* Define to 1 if your system has a working `chown' function. */
>   #undef HAVE_CHOWN
>
> @@ -159,9 +156,6 @@
>   /* Define to 1 if you have the<libgen.h>  header file. */
>   #undef HAVE_LIBGEN_H
>
> -/* Define to 1 if you have the<libgulm.h>  header file. */
> -#undef HAVE_LIBGULM_H
> -
>   /* Define to 1 if you have the<libintl.h>  header file. */
>   #undef HAVE_LIBINTL_H
>




More information about the lvm-devel mailing list