##/bin/bash # SPDX-License-Identifier: GPL-2.0 # Copyright (c) 2016 Red Hat, Inc. All Rights Reserved. # # common functions for setting up and tearing down a dmdelay device DELAY_NONE=0 DELAY_READ=1 _init_delay() { local BLK_DEV_SIZE=`blockdev --getsz $SCRATCH_DEV` DELAY_DEV=/dev/mapper/delay-test DELAY_TABLE="0 $BLK_DEV_SIZE delay $SCRATCH_DEV 0 0" DELAY_TABLE_RDELAY="0 $BLK_DEV_SIZE delay $SCRATCH_DEV 0 10000 $SCRATCH_DEV 0 0" _dmsetup_create delay-test --table "$DELAY_TABLE" || \ _fatal "failed to create delay device" } _mount_delay() { _scratch_options mount $MOUNT_PROG -t $FSTYP `_common_dev_mount_options` $SCRATCH_OPTIONS \ $DELAY_DEV $SCRATCH_MNT } _unmount_delay() { $UMOUNT_PROG $SCRATCH_MNT } _cleanup_delay() { # If dmsetup load fails then we need to make sure to do resume here # otherwise the umount will hang $DMSETUP_PROG resume delay-test > /dev/null 2>&1 $UMOUNT_PROG $SCRATCH_MNT > /dev/null 2>&1 _dmsetup_remove delay-test } # _load_delay_table