##/bin/bash # SPDX-License-Identifier: GPL-2.0+ # Copyright (c) 2016 Oracle. All Rights Reserved. # # Routines for creating huge (fake) disks _require_dmhugedisk() { _require_dm_target zero _require_dm_target snapshot } _dmhugedisk_init() { test -z "$1" && _fatal "must specify sector count to _dmhugedisk_init" local dm_backing_dev=$SCRATCH_DEV local chunk_size="$2" if [ -z "$chunk_size" ]; then chunk_size=512 fi _dmsetup_remove huge-test _dmsetup_remove huge-test-zero local blk_dev_size=$1 DMHUGEDISK_ZERO='/dev/mapper/huge-test-zero' DMHUGEDISK_DEV='/dev/mapper/huge-test' DMHUGEDISK_ZERO_TABLE="0 $blk_dev_size zero" DMHUGEDISK_DEV_TABLE="0 $blk_dev_size snapshot $DMHUGEDISK_ZERO $SCRATCH_DEV N $chunk_size" _dmsetup_create huge-test-zero --table "$DMHUGEDISK_ZERO_TABLE" || \ _fatal "failed to create dm huge zero device" _dmsetup_create huge-test --table "$DMHUGEDISK_DEV_TABLE" || \ _fatal "failed to create dm huge device" } _dmhugedisk_cleanup() { $UMOUNT_PROG $SCRATCH_MNT > /dev/null 2>&1 _dmsetup_remove huge-test _dmsetup_remove huge-test-zero }