From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ryan McCabe Date: Wed, 29 Aug 2012 09:57:41 -0400 Subject: [Cluster-devel] [PATCH] rgmanager: Fix for reading /proc/mounts in fs.sh Message-ID: <20120829135738.GA89550@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit This patch fixes a problem with the fs resource agent that caused status checks to mistakenly fail as a result of /proc/mounts changing while it was being read. Patch from John Ruemker Resolves rhbz#847125 Signed-off-by: Ryan McCabe --- rgmanager/src/resources/fs.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/rgmanager/src/resources/fs.sh b/rgmanager/src/resources/fs.sh index 9dec8d1..147f246 100755 --- a/rgmanager/src/resources/fs.sh +++ b/rgmanager/src/resources/fs.sh @@ -560,6 +560,8 @@ mountInUse () { dev=$1 mp=$2 + typeset proc_mounts=$(mktemp /tmp/fs-$OCF_RESKEY_name.proc.mounts.XXXXXX) + cat /proc/mounts > $proc_mounts while read tmp_dev tmp_mp junka junkb junkc junkd; do if [ -n "$tmp_dev" -a "$tmp_dev" = "$dev" ]; then return $YES @@ -568,7 +570,8 @@ mountInUse () { if [ -n "$tmp_mp" -a "$tmp_mp" = "$mp" ]; then return $YES fi - done < /proc/mounts + done < $proc_mounts + rm -f $proc_mounts return $NO } @@ -609,6 +612,8 @@ isMounted () { ret=$NO + typeset proc_mounts=$(mktemp /tmp/fs-$OCF_RESKEY_name.proc.mounts.XXXXXX) + cat /proc/mounts > $proc_mounts while read tmp_dev tmp_mp junk_a junk_b junk_c junk_d do real_device $tmp_dev @@ -633,7 +638,8 @@ isMounted () { fi ret=$YES fi - done < /proc/mounts + done < $proc_mounts + rm -f $proc_mounts if [ $ret -eq $YES ] && [ $found -ne 0 ]; then ocf_log warn "Device $dev is mounted on $poss_mp instead of $mp" -- 1.7.11.4