Whamcloud - gitweb
LU-10098 scripts: Fix mounted check in Lustre RA 51/29351/3
authorNathaniel Clark <nathaniel.l.clark@intel.com>
Fri, 6 Oct 2017 16:49:23 +0000 (12:49 -0400)
committerOleg Drokin <oleg.drokin@intel.com>
Mon, 6 Nov 2017 03:42:39 +0000 (03:42 +0000)
The "Lustre" resource agent for pacemaker can mis-identify a resource
as being mounted if it's mountpoint is a substring match for anything
else in /proc/mounts.  Change the lustre_is_mounted() function to
check to make sure it's a lustre fs mounted at mountpoint and the
"source" (i.e. device) is the target we expect.

Signed-off-by: Nathaniel Clark <nathaniel.l.clark@intel.com>
Change-Id: Ib877b0dc3d3ce0d93fd4663aa2418ac21d670428
Reviewed-on: https://review.whamcloud.com/29351
Tested-by: Jenkins
Reviewed-by: Malcolm Cowe <malcolm.j.cowe@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Olaf Faaland-LLNL <faaland1@llnl.gov>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
contrib/scripts/pacemaker/Lustre

index e3671b0..645bf96 100755 (executable)
@@ -95,8 +95,10 @@ END
 #
 
 lustre_is_mounted () {
-    # Verify if this is consistent
-    grep -q $(realpath "$OCF_RESKEY_mountpoint") /proc/mounts
+    # Verify if this is consistent, check pointpoint and filesystem
+    # against source (i.e. device)
+    local dev=$(findmnt -t lustre -ln -o SOURCE -T $(realpath "$OCF_RESKEY_mountpoint"))
+    [ "$dev" == "$OCF_RESKEY_target" ]
 }
 
 lustre_monitor () {