From 017157d21a56410811384a43d0b0cbba6444baeb Mon Sep 17 00:00:00 2001 From: Don Penney Date: Wed, 6 Feb 2019 01:19:59 -0500 Subject: [PATCH] Check for mounted device before demoting Primary DRBD resource Update the OCF script to check for a mounted device when demoting a resource that's in the Primary state. The state change will fail if it is still in use, otherwise. Signed-off-by: Don Penney --- scripts/drbd.ocf | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/scripts/drbd.ocf b/scripts/drbd.ocf index e03bf6d..95da11a 100644 --- a/scripts/drbd.ocf +++ b/scripts/drbd.ocf @@ -720,7 +720,21 @@ drbd_stop() { ;; $OCF_RUNNING_MASTER) ocf_log warn "$DRBD_RESOURCE still Primary, demoting." - do_drbdadm secondary $DRBD_RESOURCE + found=no + for dev in ${DRBD_DEVICES[@]} ""; do + cat /proc/mounts | grep -q "^${dev} " + if [ $? -eq 0 ]; then + ocf_log warn "${DRBD_RESOURCE} is still mounted via $dev" + found=yes + break + fi + done + if [ "${found}" = "yes" ]; then + ocf_log warn "Waiting to drop $DRBD_RESOURCE" + else + ocf_log warn "Dropping $DRBD_RESOURCE to Secondary" + do_drbdadm secondary $DRBD_RESOURCE + fi esac $first_try || sleep 1 first_try=false -- 1.8.3.1