Blob Blame History Raw
#!/bin/sh
#
# Do not run this script manually. This script is called by udev on a gfs2
# withdraw uevent and is used to complete the withdraw action and notify the
# kernel.
#

# Sanity checks
if [ "$SUBSYSTEM" != "gfs2" ] || [ "$LOCKPROTO" != "lock_dlm" ] ||
       [ -z "$DEVPATH" ] || [ "$ACTION" != "offline" ]
then
    exit 1 # Nothing to do here
fi

# Try and suspend the device
SYSFS_TOPDIR="/sys"$DEVPATH
DM_NAME=$(cat "$SYSFS_TOPDIR/device/dm/name")
DM_DEV="/dev/mapper/"$DM_NAME

if [ -z "$DM_DEV" ]
then
    /usr/bin/dmsetup suspend $DM_DEV
fi

# Signal completion of withdraw
WD_ACK="$SYSFS_TOPDIR/lock_module/withdraw"
if [ -f "$WD_ACK" ]
then
    echo "1" > $WD_ACK
fi