Blob Blame History Raw
From ad1155ea55a042bec47f43973399d0742263c54f Mon Sep 17 00:00:00 2001
From: Jiffin Tony Thottan <jthottan@redhat.com>
Date: Fri, 30 Jun 2017 17:11:46 +0530
Subject: [PATCH 566/566] systemd/glusterfssharedstorage : remove dependency
 for var-run-gluster-shared_storage

Currently the script used by glusterfssharedstorage have dependency over
var-run-gluster-shared_storage. But this service will be present only if
node has rebooted. Also in reboot scenario , there is a chance that this
service can be executed before creating var-run-gluster-shared_storage.
In that case glusterfssharedstorage will get succeed even without mounting
the shared storage

Also the type of glusterfssharedstorage changed to "forking" so that it can
be active(instead of dead) after the successful start.

Upstream reference
>Change-Id: I1c02cc64946e534d845aa7ec7b72644bbe4d26f9
>BUG: 1452527
>Signed-off-by: Jiffin Tony Thottan <jthottan@redhat.com>
>https://review.gluster.org/#/c/17658/

Change-Id: I1c02cc64946e534d845aa7ec7b72644bbe4d26f9
BUG: 1335090
Signed-off-by: Jiffin Tony Thottan <jthottan@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/112440
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
---
 extras/mount-shared-storage.sh                   | 43 ++++++++++++------------
 extras/systemd/glusterfssharedstorage.service.in |  1 +
 2 files changed, 22 insertions(+), 22 deletions(-)

diff --git a/extras/mount-shared-storage.sh b/extras/mount-shared-storage.sh
index 038a59a..3645a0f 100755
--- a/extras/mount-shared-storage.sh
+++ b/extras/mount-shared-storage.sh
@@ -4,34 +4,33 @@
 #try to mount the shared storage if it fails
 #TODO : Do it for other glusterfs clients in /etc/fstab
 
-ms="var-run-gluster-shared_storage.mount"
 volume="gluster_shared_storage"
-failed=$(systemctl --failed | grep -c $ms)
-if [ $failed -eq 1 ]
+mp="/var/run/gluster/shared_storage"
+#check if there is fstab entry for shared storage
+gfc=$(sed -e 's/#.$//' </etc/fstab | grep -c $volume)
+if [ $gfc -eq 0 ]
 then
-        if systemctl restart $ms
-        then
-                #Restart worked just wait for sometime to make it reflect
-                sleep 5
-        else
-                #Restart failed, no point in further continuing
-                exit 1
-        fi
+	exit 0
 fi
 
-# If we've reached this point, there wasn't a failed mountpoint
-# BUT we need to check for whether this haven't been called before the attempts
-# to the filesystem mounts, thus we need to check whether there is a glusterfs
-# in fstab and aren't mountedmount
+#check whether shared storage is mounted
+#if it is mounted then mount has inode value 1
+inode=$(ls -id $mp | awk '{print $1}')
 
-#In the logs I've seen ~4-5secs between the initial mount/start and the unmount
+if [ $inode -eq 1 ]
+then
+	exit 0
+fi
 
-gfc=$(sed -e 's/#.$//' </etc/fstab | grep -c $volume)
-gfm=$(grep -i $volume /proc/mounts | wc -l)
+mount -t glusterfs localhost:/$volume $mp
+#wait for few seconds
+sleep 5
 
-if [ $gfm -lt $gfc ]
+#recheck mount got succeed
+inode=$(ls -id $mp | awk '{print $1}')
+if [ $inode -eq 1 ]
 then
-        exit 1
+	exit 0
+else
+	exit 1
 fi
-
-exit 0
diff --git a/extras/systemd/glusterfssharedstorage.service.in b/extras/systemd/glusterfssharedstorage.service.in
index 3bceba8..723ff49 100644
--- a/extras/systemd/glusterfssharedstorage.service.in
+++ b/extras/systemd/glusterfssharedstorage.service.in
@@ -3,6 +3,7 @@ Description=Mount glusterfs sharedstorage
 Requires=glusterd.service remote-fs-pre.target local-fs.target
 
 [Service]
+Type=forking
 ExecStart=@GLUSTERFS_LIBEXECDIR@/mount-shared-storage.sh
 Restart=on-failure
 RestartSec=3
-- 
1.8.3.1