[SCM] Samba Shared Repository - branch master updated

Amitay Isaacs amitay at samba.org
Wed Nov 18 10:52:03 UTC 2015


The branch, master has been updated
       via  d967789 ctdb-scripts: Fix CTDB_DBDIR=tmpfs support
      from  3968e33 ctdb: Remove unused ctdb_set_process_name

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit d9677894b7aa2248e1884ab9e21667879bf1e3c4
Author: Martin Schwenke <martin at meltin.net>
Date:   Tue Nov 17 14:57:44 2015 +1100

    ctdb-scripts: Fix CTDB_DBDIR=tmpfs support
    
    Various scripts (including debug_locks.sh, 00.ctdb, 05.system) need
    CTDB_DBDIR to point to the right place... but it doesn't.
    
    Move the rewriting of CTDB_DBDIR to loadconfig() so that it happens
    for all scripts.  Have this code set internal variable
    CTDB_DBDIR_TMPFS_OPTIONS so that ctdbd_wrapper can do the mount.
    
    This loses the generality that was present in dbdir_tmpfs_start() but
    it wasn't being used anyway.  If it is needed in the future then it
    will be in the git history.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>
    
    Autobuild-User(master): Amitay Isaacs <amitay at samba.org>
    Autobuild-Date(master): Wed Nov 18 11:51:54 CET 2015 on sn-devel-104

-----------------------------------------------------------------------

Summary of changes:
 ctdb/config/ctdbd_wrapper | 79 ++++++++++++++++-------------------------------
 ctdb/config/functions     | 25 +++++++++++++++
 2 files changed, 52 insertions(+), 52 deletions(-)


Changeset truncated at 500 lines:

diff --git a/ctdb/config/ctdbd_wrapper b/ctdb/config/ctdbd_wrapper
index 71c7b25..be251e6 100755
--- a/ctdb/config/ctdbd_wrapper
+++ b/ctdb/config/ctdbd_wrapper
@@ -25,7 +25,6 @@ loadconfig "ctdb"
 [ -n "$CTDB_SOCKET" ] && export CTDB_SOCKET
 
 ctdbd="${CTDBD:-/usr/local/sbin/ctdbd}"
-ctdb_rundir="/usr/local/var/run/ctdb"
 
 ############################################################
 
@@ -80,61 +79,37 @@ ctdbd_is_running ()
 
 ############################################################
 
-# Mount given database directories on tmpfs
+# If necessary, mount volatile database directory on tmpfs
 dbdir_tmpfs_start ()
 {
-    for _var ; do
-	# $_var is the name of the configuration varable, so get the
-	# value
-	eval _val="\$${_var}"
-
-	case "$_val" in
-	    tmpfs|tmpfs:*)
-		_opts_defaults="mode=700"
-		# Get any extra options specified after colon
-		if [ "$_val" = "tmpfs" ] ; then
-		    _opts=""
-		else
-		    _opts="${_val#tmpfs:}"
-		fi
-		# It is OK to repeat options - last value wins
-		_opts_all="${_opts_defaults}${_opts:+,}${_opts}"
-
-		# Last component of mountpoint is variable name
-		_mnt="${ctdb_rundir}/${_var}"
-		mkdir -p "$_mnt" || exit $?
-
-		# If already mounted then remount, otherwise mount
-		if findmnt -t tmpfs "$_mnt" >/dev/null ; then
-		    mount -t tmpfs -o "remount,$_opts_all" none "$_mnt" || \
-			exit $?
-		else
-		    mount -t tmpfs -o "$_opts_all" none "$_mnt" || exit $?
-		fi
-
-		# Replace specified value with mountpoint, to be
-		# passed to ctdbd
-		eval "${_var}=${_mnt}"
-		;;
-	esac
-    done
+    if [ -z "$CTDB_DBDIR_TMPFS_OPTIONS" ] ; then
+	return
+    fi
+
+    # Shortcut for readability
+    _opts="$CTDB_DBDIR_TMPFS_OPTIONS"
+
+    mkdir -p "$CTDB_DBDIR" || exit $?
+
+    # If already mounted then remount, otherwise mount
+    if findmnt -t tmpfs "$CTDB_DBDIR" >/dev/null ; then
+	mount -t tmpfs -o "remount,$_opts" none "$CTDB_DBDIR" || \
+	    exit $?
+    else
+	mount -t tmpfs -o "$_opts" none "$CTDB_DBDIR" || exit $?
+    fi
 }
 
-# Unmount database tmpfs directories on exit
+# If necessary, unmount volatile database tmpfs directory on exit
 dbdir_tmpfs_stop ()
 {
-    for _var ; do
-	eval _val="\$${_var}"
-
-	case "$_val" in
-	    tmpfs|tmpfs:*)
-		_mnt="${ctdb_rundir}/${_var}"
-		if [ -d "$_mnt" ] && findmnt -t tmpfs "$_mnt" >/dev/null ; then
-		    umount "$_mnt"
-		fi
-		;;
-	esac
-    done
+    if [ -z "$CTDB_DBDIR_TMPFS_OPTIONS" ] ; then
+	return
+    fi
+
+    if [ -d "$CTDB_DBDIR" ] && findmnt -t tmpfs "$CTDB_DBDIR" >/dev/null ; then
+	umount "$CTDB_DBDIR"
+    fi
 }
 
 build_ctdb_options ()
@@ -223,7 +198,7 @@ start()
     # there may still be other processes around, so do some cleanup.
     kill_ctdbd "$_session"
 
-    dbdir_tmpfs_start CTDB_DBDIR
+    dbdir_tmpfs_start
 
     build_ctdb_options
 
@@ -334,7 +309,7 @@ stop()
 	fi
     fi
 
-    dbdir_tmpfs_stop CTDB_DBDIR
+    dbdir_tmpfs_stop
 
     return 0
 }
diff --git a/ctdb/config/functions b/ctdb/config/functions
index 49bed98..eef8f7e 100755
--- a/ctdb/config/functions
+++ b/ctdb/config/functions
@@ -8,6 +8,7 @@ if [ -z "$CTDB_BASE" ] ; then
 fi
 
 CTDB_VARDIR="/usr/local/var/lib/ctdb"
+ctdb_rundir="/usr/local/var/run/ctdb"
 
 # Only (and always) override these variables in test code
 
@@ -21,6 +22,29 @@ fi
 
 #######################################
 # pull in a system config file, if any
+
+rewrite_ctdb_options ()
+{
+    case "$CTDB_DBDIR" in
+	tmpfs|tmpfs:*)
+	    _opts_defaults="mode=700"
+	    # Get any extra options specified after colon
+	    if [ "$CTDB_DBDIR" = "tmpfs" ] ; then
+		_opts=""
+	    else
+		_opts="${CTDB_DBDIR#tmpfs:}"
+	    fi
+	    # This is an internal variable, only used by ctdbd_wrapper.
+	    # It is OK to repeat mount options - last value wins
+	    CTDB_DBDIR_TMPFS_OPTIONS="${_opts_defaults}${_opts:+,}${_opts}"
+
+	    CTDB_DBDIR="${ctdb_rundir}/CTDB_DBDIR"
+	    ;;
+	*)
+	    CTDB_DBDIR_TMPFS_OPTIONS=""
+    esac
+}
+
 _loadconfig() {
 
     if [ -z "$1" ] ; then
@@ -52,6 +76,7 @@ _loadconfig() {
 	if [ -r "$_config" ] ; then
 	    . "$_config"
 	fi
+	rewrite_ctdb_options
     fi
 }
 


-- 
Samba Shared Repository



More information about the samba-cvs mailing list