#!/bin/sh
#
# This script is called by udev on a gfs2 online uevent and is used to change I/O scheduler for block device.
# DEVPATH in form '/fs/gfs2/clusterid:lsid'

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

# Try to change scheduler
DEV_NAME=$(udevadm info -q name "/sys/dev/block/"$(cat "/sys"${DEVPATH}"/device/dev"))
SCHED_PATH="/sys/block/"${DEV_NAME}"/queue/scheduler"
[ -f ${SCHED_PATH} ] && echo $1 > ${SCHED_PATH}
