#
# Configuration file for xfs
#

if test -f /usr/local/lib/combine-xfs-mkfs-opts; then
    . /usr/local/lib/combine-xfs-mkfs-opts
elif test -f $DIR/../test-appliance/files/usr/local/lib/combine-xfs-mkfs-opts; then
    . $DIR/../test-appliance/files/usr/local/lib/combine-xfs-mkfs-opts
else
    echo "Error: Could not find file combine-xfs-mkfs-opts"
fi

DEFAULT_MKFS_OPTIONS="-bsize=4096"

function check_filesystem()
{
    local dev="$1"
    local ret

    local logdev_opt
    local rt_opt

    if [ "$dev" = "$TEST_DEV" ] && [ -n "$TEST_LOGDEV" ]; then
        logdev_opt="-l $TEST_LOGDEV"
    fi

    if [ "$dev" = "$TEST_DEV" ] && [ -n "$TEST_RTDEV" ]; then
        rt_opt="-r $TEST_RTDEV"
    fi

    xfs_repair $logdev_opt $rt_opt "$dev"
    ret="$?"
    echo xfs_repair exited with status "$ret"
    return "$ret"
}

function xfs_adjust_mkfs_opts()
{
    if test -z "$MKFS_CONFIG_FILE" ; then
	return
    fi
    xfs_combine_reset
    xfs_combine_config_file < "$MKFS_CONFIG_FILE"
    xfs_combine_opt_string "$XFS_MKFS_OPTIONS"
    export XFS_MKFS_OPTIONS=$(xfs_combine_output_opts)
}

adjust_mkfs_options=xfs_adjust_mkfs_opts

function format_filesystem()
{
    local dev="$1"
    local opts="$2"
    local ret
    local logdev_opt
    local rt_opt

    if [ "$dev" = "$TEST_DEV" ] && [ -n "$TEST_LOGDEV" ]; then
        logdev_opt="-l logdev=$TEST_LOGDEV"
    fi

    if [ "$dev" = "$TEST_DEV" ] && [ -n "$TEST_RTDEV" ]; then
        rt_opt="-r rtdev=$TEST_RTDEV"
    fi

    mkfs.xfs -f $opts $logdev_opt $rt_opt "$dev"
    ret="$?"
    return "$ret"
}

function setup_mount_opts()
{
    if test -n "$MNTOPTS" ; then
	if test -n "$XFS_MOUNT_OPTIONS" ; then
            export XFS_MOUNT_OPTIONS="$XFS_MOUNT_OPTIONS,$MNTOPTS"
	else
	    export XFS_MOUNT_OPTIONS="-o $MNTOPTS"
	fi
    fi
}

function get_mkfs_opts()
{
    echo "$XFS_MKFS_OPTIONS"
}

function show_mount_opts()
{
    echo XFS_MOUNT_OPTIONS: "$XFS_MOUNT_OPTIONS"
}

function show_mkfs_opts()
{
    echo XFS_MKFS_OPTIONS: "$XFS_MKFS_OPTIONS"
}

function test_name_alias()
{
    case "$1" in
	default)	echo "4k" ;;
	*)		echo "$1" ;;
    esac
}

function reset_vars()
{
    unset XFS_MOUNT_OPTIONS
    unset XFS_MKFS_OPTIONS
    unset adjust_mkfs_options
}
