Blame SOURCES/bz1924363-nfsserver-error-check-unmount.patch

145c2a
From dc4fc6fb51481e62c763212129e7dbae4cb663fd Mon Sep 17 00:00:00 2001
145c2a
From: Reid Wahl <nrwahl@protonmail.com>
145c2a
Date: Tue, 2 Feb 2021 17:55:40 -0800
145c2a
Subject: [PATCH] nfsserver: Error-check unbind_tree
145c2a
145c2a
Fail to stop if unmounting rpcpipefs_dir or /var/lib/nfs fails.
145c2a
145c2a
Resolves: RHBZ#1924363
145c2a
145c2a
Signed-off-by: Reid Wahl <nrwahl@protonmail.com>
145c2a
---
145c2a
 heartbeat/nfsserver | 23 ++++++++++++++++++++---
145c2a
 1 file changed, 20 insertions(+), 3 deletions(-)
145c2a
145c2a
diff --git a/heartbeat/nfsserver b/heartbeat/nfsserver
145c2a
index 80d20676b..96b19abe3 100755
145c2a
--- a/heartbeat/nfsserver
145c2a
+++ b/heartbeat/nfsserver
145c2a
@@ -465,9 +465,20 @@ unbind_tree ()
145c2a
 		sleep 1
145c2a
 		i=$((i + 1))
145c2a
 	done
145c2a
+
145c2a
+	if mount | grep -q " on $OCF_RESKEY_rpcpipefs_dir "; then
145c2a
+		ocf_log err "Failed to unmount $OCF_RESKEY_rpcpipefs_dir"
145c2a
+		return $OCF_ERR_GENERIC
145c2a
+	fi
145c2a
+
145c2a
 	if is_bound /var/lib/nfs; then
145c2a
-		umount /var/lib/nfs
145c2a
+		if ! umount /var/lib/nfs; then
145c2a
+			ocf_log err "Failed to unmount /var/lib/nfs"
145c2a
+			return $OCF_ERR_GENERIC
145c2a
+		fi
145c2a
 	fi
145c2a
+
145c2a
+	return $OCF_SUCCESS
145c2a
 }
145c2a
 
145c2a
 binary_status()
145c2a
@@ -836,8 +847,14 @@ nfsserver_stop ()
145c2a
 	esac
145c2a
 
145c2a
 	unbind_tree
145c2a
-	ocf_log info "NFS server stopped"
145c2a
-	return 0
145c2a
+	rc=$?
145c2a
+	if [ "$rc" -ne $OCF_SUCCESS ]; then
145c2a
+		ocf_exit_reason "Failed to unmount a bind mount"
145c2a
+	else
145c2a
+		ocf_log info "NFS server stopped"
145c2a
+	fi
145c2a
+
145c2a
+	return $rc
145c2a
 }
145c2a
 
145c2a
 nfsserver_validate ()