summaryrefslogtreecommitdiffstats
path: root/xlators/mount/fuse/utils/mount.glusterfs.in
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/mount/fuse/utils/mount.glusterfs.in')
-rwxr-xr-xxlators/mount/fuse/utils/mount.glusterfs.in721
1 files changed, 156 insertions, 565 deletions
diff --git a/xlators/mount/fuse/utils/mount.glusterfs.in b/xlators/mount/fuse/utils/mount.glusterfs.in
index 4348533b1a2..bf43525ec00 100755
--- a/xlators/mount/fuse/utils/mount.glusterfs.in
+++ b/xlators/mount/fuse/utils/mount.glusterfs.in
@@ -1,19 +1,20 @@
-#!/bin/sh
-#
-# Copyright (c) 2013 Red Hat, Inc. <http://www.redhat.com>
-# Copyright (c) 2015 ungleich GmbH <http://www.ungleich.ch>
-#
-# This file is part of GlusterFS.
-#
-# This file is licensed to you under your choice of the GNU Lesser
-# General Public License, version 3 or any later version (LGPLv3 or
-# later), or the GNU General Public License, version 2 (GPLv2), in all
-# cases as published by the Free Software Foundation.
-
-warn ()
-{
- echo "$@" >&2
-}
+#!/bin/bash
+# (C) 2006, 2007, 2008 Gluster Inc. <http://www.gluster.com>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public
+# License along with this program; if not, write to the Free
+# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+# Boston, MA 02110-1301 USA
_init ()
{
@@ -22,626 +23,216 @@ _init ()
LOG_CRITICAL=CRITICAL;
LOG_ERROR=ERROR;
LOG_WARNING=WARNING;
- LOG_INFO=INFO
+ LOG_NORMAL=NORMAL
LOG_DEBUG=DEBUG;
LOG_TRACE=TRACE;
- HOST_NAME_MAX=64;
-
+ # set default log level to NORMAL
+ log_level=$LOG_NORMAL;
prefix="@prefix@";
exec_prefix=@exec_prefix@;
cmd_line=$(echo "@sbindir@/glusterfs");
-
- # check whether getfattr exists
- export PATH
- getfattr=$(which getfattr 2>/dev/null);
- if [ $? -ne 0 ]; then
- warn "WARNING: getfattr not found, certain checks will be skipped.."
- fi
-
- mounttab=/proc/mounts
- uname_s=`uname -s`
- case ${uname_s} in
- NetBSD)
- getinode="stat -f %i"
- getdev="stat -f %d"
- lgetinode="${getinode} -L"
- lgetdev="${getdev} -L"
- ;;
- Linux)
- getinode="stat -c %i"
- getdev="stat -c %d"
- lgetinode="${getinode} -L"
- lgetdev="${getdev} -L"
- ;;
- esac
-
- UPDATEDBCONF=/etc/updatedb.conf
-}
-
-is_valid_hostname ()
-{
- local server=$1
-
- length=$(echo $server | wc -c)
- if [ ${length} -gt ${HOST_NAME_MAX} ]; then
- return 1
- fi
-}
-
-parse_backup_volfile_servers ()
-{
- local server_list=$1
- local servers=""
- local new_servers=""
-
- servers=$(echo ${server_list} | sed 's/\:/ /g')
- for server in ${servers}; do
- is_valid_hostname ${server}
- if [ $? -eq 1 ]; then
- continue
- fi
- new_servers=$(echo "${new_servers} ${server}")
- done
-
- echo ${new_servers}
-}
-
-parse_volfile_servers ()
-{
- local server_list=$1
- local servers=""
- local new_servers=""
-
- servers=$(echo ${server_list} | sed 's/,/ /g')
- for server in ${servers}; do
- is_valid_hostname ${server}
- if [ $? -eq 1 ]; then
- continue
- fi
- new_servers=$(echo "${new_servers} ${server}")
- done
-
- echo ${new_servers}
}
start_glusterfs ()
{
if [ -n "$log_level_str" ]; then
- case "$( echo $log_level_str | awk '{print toupper($0)}')" in
- "ERROR")
- log_level=$LOG_ERROR;
- ;;
- "INFO")
- log_level=$LOG_INFO;
- ;;
- "DEBUG")
- log_level=$LOG_DEBUG;
- ;;
- "CRITICAL")
- log_level=$LOG_CRITICAL;
- ;;
- "WARNING")
- log_level=$LOG_WARNING;
+ case "$log_level_str" in
+ "ERROR")
+ log_level=$LOG_ERROR;
+ ;;
+ "NORMAL")
+ log_level=$LOG_NORMAL
;;
- "TRACE")
- log_level=$LOG_TRACE;
- ;;
- "NONE")
- log_level=$LOG_NONE;
- ;;
- *)
- warn "invalid log level $log_level_str, using INFO";
- log_level=$LOG_INFO;
- ;;
- esac
- fi
-
- # options without values start here
- if [ -n "$read_only" ]; then
- cmd_line=$(echo "$cmd_line --read-only");
- fi
-
- if [ -n "$acl" ]; then
- cmd_line=$(echo "$cmd_line --acl");
- fi
-
- if [ -n "$selinux" ]; then
- cmd_line=$(echo "$cmd_line --selinux");
- fi
-
- if [ -n "$enable_ino32" ]; then
- cmd_line=$(echo "$cmd_line --enable-ino32");
- fi
-
- if [ -n "$worm" ]; then
- cmd_line=$(echo "$cmd_line --worm");
- fi
- if [ -n "$volfile_max_fetch_attempts" ]; then
- cmd_line=$(echo "$cmd_line --volfile-max-fetch-attempts=$volfile_max_fetch_attempts")
- fi
-
- if [ -n "$fopen_keep_cache" ]; then
- cmd_line=$(echo "$cmd_line --fopen-keep-cache");
+ "DEBUG")
+ log_level=$LOG_DEBUG;
+ ;;
+ "CRITICAL")
+ log_level=$LOG_CRITICAL;
+ ;;
+ "WARNING")
+ log_level=$LOG_WARNING;
+ ;;
+ "TRACE")
+ log_level=$LOG_TRACE;
+ ;;
+ "NONE")
+ log_level=$LOG_NONE;
+ ;;
+ *)
+ echo "invalid log level $log_level_str, using NORMAL";
+ log_level=$LOG_NORMAL;
+ ;;
+ esac
+ fi
+ cmd_line=$(echo "$cmd_line --log-level=$log_level");
+
+ if [ -n "$log_file" ]; then
+ cmd_line=$(echo "$cmd_line --log-file=$log_file");
fi
if [ -n "$volfile_check" ]; then
- cmd_line=$(echo "$cmd_line --volfile-check");
- fi
-
- if [ -n "$mem_accounting" ]; then
- cmd_line=$(echo "$cmd_line --mem-accounting");
- fi
-
- if [ -n "$aux_gfid_mount" ]; then
- cmd_line=$(echo "$cmd_line --aux-gfid-mount");
- fi
-
- if [ -n "$no_root_squash" ]; then
- cmd_line=$(echo "$cmd_line --no-root-squash");
- fi
-
-#options with values start here
- if [ -n "$log_level" ]; then
- cmd_line=$(echo "$cmd_line --log-level=$log_level");
- fi
-
- if [ -n "$log_file" ]; then
- cmd_line=$(echo "$cmd_line --log-file=$log_file");
+ cmd_line=$(echo "$cmd_line --volfile-check");
fi
if [ -n "$direct_io_mode" ]; then
- cmd_line=$(echo "$cmd_line --direct-io-mode=$direct_io_mode");
- fi
-
- if [ -n "$use_readdirp" ]; then
- cmd_line=$(echo "$cmd_line --use-readdirp=$use_readdirp");
+ cmd_line=$(echo "$cmd_line --disable-direct-io-mode");
fi
if [ -n "$volume_name" ]; then
cmd_line=$(echo "$cmd_line --volume-name=$volume_name");
fi
-
- if [ -n "$attribute_timeout" ]; then
- cmd_line=$(echo "$cmd_line --attribute-timeout=$attribute_timeout");
- fi
-
- if [ -n "$entry_timeout" ]; then
- cmd_line=$(echo "$cmd_line --entry-timeout=$entry_timeout");
- fi
-
- if [ -n "$negative_timeout" ]; then
- cmd_line=$(echo "$cmd_line --negative-timeout=$negative_timeout");
- fi
-
- if [ -n "$gid_timeout" ]; then
- cmd_line=$(echo "$cmd_line --gid-timeout=$gid_timeout");
- fi
-
- if [ -n "$bg_qlen" ]; then
- cmd_line=$(echo "$cmd_line --background-qlen=$bg_qlen");
- fi
-
- if [ -n "$cong_threshold" ]; then
- cmd_line=$(echo "$cmd_line --congestion-threshold=$cong_threshold");
- fi
-
- if [ -n "$fuse_mountopts" ]; then
- cmd_line=$(echo "$cmd_line --fuse-mountopts=$fuse_mountopts");
- fi
-
- if [ -n "$xlator_option" ]; then
- cmd_line=$(echo "$cmd_line --xlator-option=$xlator_option");
+
+ if [ -n "$log_server" ]; then
+ if [ -n "$log_server_port" ]; then
+ cmd_line=$(echo "$cmd_line \
+--log-server=$log_server \
+--log-server-port=$log_server_port");
+ fi
fi
- # if trasnport type is specified, we have to append it to
- # volume name, so that it fetches the right client vol file
-
if [ -z "$volfile_loc" ]; then
if [ -n "$server_ip" ]; then
-
- servers=$(parse_volfile_servers ${server_ip});
- if [ -n "$servers" ]; then
- for i in $(echo ${servers}); do
- cmd_line=$(echo "$cmd_line --volfile-server=$i");
- done
- else
- warn "ERROR: No valid servers found on command line.. exiting"
- print_usage
- exit 1
- fi
-
- if [ -n "$backupvolfile_server" ]; then
- if [ -z "$backup_volfile_servers" ]; then
- is_valid_hostname ${backupvolfile_server};
- if [ $? -eq 1 ]; then
- warn "ERROR: Invalid backup server specified.. exiting"
- exit 1
- fi
- cmd_line=$(echo "$cmd_line --volfile-server=$backupvolfile_server");
- fi
+ cmd_line=$(echo "$cmd_line --volfile-server-port=$server_port");
+ if [ -n "$transport" ]; then
+ cmd_line=$(echo "$cmd_line --volfile-server-transport=$transport");
fi
-
- if [ -n "$backup_volfile_servers" ]; then
- backup_servers=$(parse_backup_volfile_servers ${backup_volfile_servers})
- for i in $(echo ${backup_servers}); do
- cmd_line=$(echo "$cmd_line --volfile-server=$i");
- done
+ if [ -n "$volume_id" ]; then
+ cmd_line=$(echo "$cmd_line --volfile-id=$volume_id");
fi
- if [ -n "$server_port" ]; then
- cmd_line=$(echo "$cmd_line --volfile-server-port=$server_port");
+ if [ -n "$backupvolfile_server" ]; then
+ cmd_line1=$(echo "$cmd_line --volfile-server=$backupvolfile_server");
fi
- if [ -n "$volume_id" ]; then
- if [ -n "$transport" ]; then
- volume_id="$volume_id.$transport";
- cmd_line=$(echo "$cmd_line --volfile-server-transport=$transport");
- fi
- cmd_line=$(echo "$cmd_line --volfile-id=$volume_id");
- fi
+ cmd_line=$(echo "$cmd_line --volfile-server=$server_ip");
fi
else
cmd_line=$(echo "$cmd_line --volfile=$volfile_loc");
fi
-
- if [ -n "$fuse_mountopts" ]; then
- cmd_line=$(echo "$cmd_line --fuse-mountopts=$fuse_mountopts");
- fi
-
+
cmd_line=$(echo "$cmd_line $mount_point");
$cmd_line;
- if [ $? -ne 0 ]; then
- warn "Mount failed. Please check the log file for more details."
- exit 1;
- fi
-
- inode=$( ${getinode} $mount_point 2>/dev/null);
- # this is required if the stat returns error
- if [ $? -ne 0 ]; then
- warn "Mount failed. Please check the log file for more details."
- umount $mount_point > /dev/null 2>&1;
- exit 1;
+ # retry the failover
+ if [ $? != "0" ]; then
+ if [ -n "$cmd_line1" ]; then
+ cmd_line1=$(echo "$cmd_line1 $mount_point");
+ $cmd_line1
+ fi
fi
-}
-print_usage ()
-{
-cat << EOF
-Usage: $0 <volumeserver>:<volumeid/volumeport> -o<options> <mountpoint>
-Options:
-man 8 $0
-To display the version number of the mount helper: $0 -V
-EOF
}
-# check for recursive mounts. i.e, mounting over an existing brick
-check_recursive_mount ()
+usage ()
{
- if [ $1 = "/" ]; then
- warn "Cannot mount over root";
- exit 2;
- fi
- # GFID check first
- # remove trailing / from mount point
- mnt_dir=${1%/};
+echo "Usage: mount.glusterfs <volumeserver>:<volumeid/volumeport> -o <options> <mountpoint>
+Options:
+man 8 mount.glusterfs
- if [ -n "${getfattr}" ]; then
- ${getfattr} -n trusted.gfid $mnt_dir 2>/dev/null | grep -iq "trusted.gfid=";
- if [ $? -eq 0 ]; then
- warn "ERROR: $mnt_dir is in use as a brick of a gluster volume";
- exit 2;
- fi
- fi
+To display the version number of the mount helper:
+mount.glusterfs --version"
- # check if the mount point is a brick's parent directory
- GLUSTERD_WORKDIR="@GLUSTERD_WORKDIR@";
+}
- ls -L "${GLUSTERD_WORKDIR}"/vols/*/bricks/* > /dev/null 2>&1;
- if [ $? -ne 0 ]; then
- return;
- fi
+main ()
+{
+ helper=$(echo "$@" | sed -n 's/.*\--[ ]*\([^ ]*\).*/\1/p');
- brick_path=`grep ^path "$GLUSTERD_WORKDIR"/vols/*/bricks/* 2>/dev/null | cut -d "=" -f 2`;
- root_inode=`${lgetinode} /`;
- root_dev=`${lgetdev} /`;
- mnt_inode=`${lgetinode} $mnt_dir`;
- mnt_dev=`${lgetdev} $mnt_dir`;
- for brick in "$brick_path"; do
- # evaluate brick path to see if this is local, if non-local, skip iteration
- ls $brick > /dev/null 2>&1;
- if [ $? -ne 0 ]; then
- continue;
- fi
+ options=$(echo "$@" | sed -n 's/.*\-o[ ]*\([^ ]*\).*/\1/p');
- if [ -n "${getfattr}" ]; then
- ${getfattr} -n trusted.gfid "$brick" 2>/dev/null | grep -iq "trusted.gfid=";
- if [ $? -eq 0 ]; then
- # brick is local
- while [ 1 ]; do
- tmp_brick="$brick";
- brick="$brick"/..;
- brick_dev=`${lgetdev} $brick`;
- brick_inode=`${lgetinode} $brick`;
- if [ "$mnt_inode" -eq "$brick_inode" \
- -a "$mnt_dev" -eq "$brick_dev" ]; then
- warn "ERROR: ${mnt_dir} is a parent of the brick ${tmp_brick}";
- exit 2;
- fi
- [ "$root_inode" -ne "$brick_inode" \
- -o "$root_dev" -ne "$brick_dev" ] || break;
- done;
- else
- continue;
- fi
- else
- continue;
- fi
- done;
-}
+ new_log_level=$(echo "$options" | sed -n 's/.*log-level=\([^,]*\).*/\1/p');
+
+ [ -n "$new_log_level" ] && {
+ log_level_str="$new_log_level";
+ }
-with_options()
-{
- local key=$1
- local value=$2
-
- # Handle options with values.
- case "$key" in
- "log-level")
- log_level_str=$value
- ;;
- "log-file")
- log_file=$value
- ;;
- "transport")
- transport=$value
- ;;
- "direct-io-mode")
- direct_io_mode=$value
- ;;
- "volume-name")
- volume_name=$value
- ;;
- "volume-id")
- volume_id=$value
- ;;
- "volfile-check")
- volfile_check=$value
- ;;
- "server-port")
- server_port=$value
- ;;
- "attribute-timeout")
- attribute_timeout=$value
- ;;
- "entry-timeout")
- entry_timeout=$value
- ;;
- "negative-timeout")
- negative_timeout=$value
- ;;
- "gid-timeout")
- gid_timeout=$value
- ;;
- "background-qlen")
- bg_qlen=$value
- ;;
- "backup-volfile-servers")
- backup_volfile_servers=$value
- ;;
- "backupvolfile-server")
- backupvolfile_server=$value
- ;;
- "fetch-attempts")
- volfile_max_fetch_attempts=$value
- ;;
- "congestion-threshold")
- cong_threshold=$value
- ;;
- "xlator-option")
- xlator_option=$value
- ;;
- "fuse-mountopts")
- fuse_mountopts=$value
- ;;
- "use-readdirp")
- use_readdirp=$value
- ;;
- "no-root-squash")
- if [ $value = "yes" ] ||
- [ $value = "on" ] ||
- [ $value = "enable" ] ||
- [ $value = "true" ] ; then
- no_root_squash=1;
- fi ;;
- "root-squash")
- if [ $value = "no" ] ||
- [ $value = "off" ] ||
- [ $value = "disable" ] ||
- [ $value = "false" ] ; then
- no_root_squash=1;
- fi ;;
- *)
- warn "Invalid option: $key"
- exit 1
- ;;
- esac
-}
+ log_file=$(echo "$options" | sed -n 's/.*log-file=\([^,]*\).*/\1/p');
-without_options()
-{
- local option=$1
- # Handle options without values.
- case "$option" in
- "ro")
- read_only=1
- ;;
- "acl")
- acl=1
- ;;
- "selinux")
- selinux=1
- ;;
- "worm")
- worm=1
- ;;
- "fopen-keep-cache")
- fopen_keep_cache=1
- ;;
- "enable-ino32")
- enable_ino32=1
- ;;
- "mem-accounting")
- mem_accounting=1
- ;;
- "aux-gfid-mount")
- if [ ${uname_s} = "Linux" ]; then
- aux_gfid_mount=1
- fi
- ;;
- # "mount -t glusterfs" sends this, but it's useless.
- "rw")
- ;;
- # these ones are interpreted during system initialization
- "noauto")
- ;;
- "_netdev")
- ;;
- *)
- warn "Invalid option $option";
- exit 1
- ;;
- esac
-}
+ transport=$(echo "$options" | sed -n 's/.*transport=\([^,]*\).*/\1/p');
-parse_options()
-{
- local optarg=${1}
- for pair in $(echo ${optarg}|sed 's/,/ /g'); do
- key=$(echo "$pair" | cut -f1 -d'=');
- value=$(echo "$pair" | cut -f2- -d'=');
- if [ "$key" = "$value" ]; then
- without_options $pair;
- else
- with_options $key $value;
- fi
- done
-}
+ direct_io_mode=$(echo "$options" | sed -n 's/.*direct-io-mode=\([^,]*\).*/\1/p');
-update_updatedb()
-{
- # Append fuse.glusterfs to PRUNEFS variable in updatedb.conf(5).
- # updatedb(8) should not index files under GlusterFS, indexing
- # GlusterFS is not necessary and should be avoided.
- # Following code disables updatedb crawl on 'glusterfs'
- test -f $UPDATEDBCONF && {
- if ! grep -q 'glusterfs' $UPDATEDBCONF; then
- sed 's/\(PRUNEFS.*\)"/\1 fuse.glusterfs"/' $UPDATEDBCONF \
- > ${UPDATEDBCONF}.bak
- mv -f ${UPDATEDBCONF}.bak $UPDATEDBCONF
- fi
- }
-}
+ volume_name=$(echo "$options" | sed -n 's/.*volume-name=\([^,]*\).*/\1/p');
-main ()
-{
- if [ "x${uname_s}" = "xLinux" ] ; then
- volfile_loc=$1
- mount_point=$2
+ volume_id=$(echo "$options" | sed -n 's/.*volume_id=\([^,]*\).*/\1/p');
- ## `mount` specifies options as a last argument
- shift 2;
- fi
- while getopts "Vo:hn" opt; do
- case "${opt}" in
- o)
- parse_options ${OPTARG};
- shift 2;
- ;;
- n)
- shift 1;
- ;;
- V)
- ${cmd_line} -V;
- exit 0;
- ;;
- h)
- print_usage;
- exit 0;
- ;;
- ?)
- print_usage;
- exit 0;
- ;;
- esac
- done
+ volfile_check=$(echo "$options" | sed -n 's/.*volfile-check=\([^,]*\).*/\1/p');
- if [ "x${uname_s}" = "xNetBSD" ] ; then
- volfile_loc=$1
- mount_point=$2
- fi
+ server_port=$(echo "$options" | sed -n 's/.*server-port=\([^,]*\).*/\1/p');
+ backupvolfile_server=$(echo "$options" | sed -n 's/.*backupvolfile-server=\([^,]*\).*/\1/p');
+ log_server=$(echo "$options" | sed -n 's/.*log-server=\([^,]*\).*/\1/p');
+
+ log_server_port=$(echo "$options" | sed -n 's/.*log-server-port=\([^,]*\).*/\1/p');
+
+ volfile_loc="$1";
+
[ -r "$volfile_loc" ] || {
- server_ip=$(echo "$volfile_loc" | sed -n 's/\([a-zA-Z0-9:.\-]*\):.*/\1/p');
- volume_str=$(echo "$volfile_loc" | sed -n 's/.*:\([^ ]*\).*/\1/p');
- [ -n "$volume_str" ] && {
- volume_id="$volume_str";
- }
- volfile_loc="";
+ server_ip=$(echo "$volfile_loc" | sed -n 's/\([^\:]*\).*/\1/p');
+ test_str=$(echo "$volfile_loc" | sed -n 's/.*:\([^ ]*\).*/\1/p');
+ [ -n "$test_str" ] && {
+ # Backward compatibility
+ test_str1=$(echo "$test_str" | sed -e 's/[0-9]//g');
+ [ -n "$test_str1" ] && {
+ volume_id="$test_str";
+ } || {
+ server_port=$test_str;
+ }
+ }
+ volfile_loc="";
}
- [ -z "$volume_id" -o -z "$server_ip" ] && {
- cat <<EOF >&2
-ERROR: Server name/volume name unspecified cannot proceed further..
-Please specify correct format
-Usage:
-man 8 $0
-EOF
- exit 1;
+ [ -n "$server_port" ] || {
+ server_port="6996";
}
- grep_ret=$(echo ${mount_point} | grep '^\-o');
- [ "x" != "x${grep_ret}" ] && {
- cat <<EOF >&2
-ERROR: -o options cannot be specified in either first two arguments..
-Please specify correct style
-Usage:
-man 8 $0
-EOF
- exit 1;
+ new_fs_options=$(echo "$options" | sed -e 's/[,]*log-file=[^,]*//' \
+ -e 's/[,]*log-level=[^,]*//' \
+ -e 's/[,]*volume-name=[^,]*//' \
+ -e 's/[,]*direct-io-mode=[^,]*//' \
+ -e 's/[,]*volfile-check=[^,]*//' \
+ -e 's/[,]*transport=[^,]*//' \
+ -e 's/[,]*backupvolfile-server=[^,]*//' \
+ -e 's/[,]*server-port=[^,]*//' \
+ -e 's/[,]*volume-id=[^,]*//' \
+ -e 's/[,]*log-server=[^,]*//' \
+ -e 's/[,]*log-server-port=[^,]*//');
+
+ #
+ [ -n "$helper" ] && {
+ cmd_line=$(echo "$cmd_line --$helper");
+ exec $cmd_line;
+ exit 0;
}
- # No need to do a ! -d test, it is taken care while initializing the
- # variable mount_point
- [ -z "$mount_point" -o ! -d "$mount_point" ] && {
- cat <<EOF >&2
-ERROR: Mount point does not exist
-Please specify a mount point
-Usage:
-man 8 $0
-EOF
- exit 1;
+ mount_point=""
+ for arg in "$@"; do
+ [ -d "$arg" ] && {
+ mount_point=$arg
+ }
+ done
+
+ [ -z "$mount_point" ] && {
+ usage;
+ exit 0;
}
# Simple check to avoid multiple identical mounts
- if grep -q "[[:space:]+]${mount_point}[[:space:]+]fuse" $mounttab; then
- warn "$0: according to mtab, GlusterFS is already mounted on" \
- "$mount_point"
- exit 32;
+ if grep -q " $mount_point fuse" /etc/mtab; then
+ echo -n "$0: according to mtab, GlusterFS is already mounted on "
+ echo "$mount_point"
+ sleep 1;
+ exit 0;
fi
- #Snapshot volumes are mounted read only
- case $volume_id in
- /snaps/* ) read_only=1
- esac
-
- check_recursive_mount "$mount_point";
-
- update_updatedb;
-
+ fs_options=$(echo "$fs_options,$new_fs_options");
+
start_glusterfs;
+
+ sleep 3;
}
_init "$@" && main "$@";
+