123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #!/bin/sh
- # SPDX-License-Identifier: GPL-2.0-or-later
- # Copyright (c) 2020 SUSE LLC <mdoucha@suse.cz>
- #
- # Create and mount LVM volume groups for lvm.local runfile
- TST_TESTFUNC=prepare_lvm
- TST_NEEDS_ROOT=1
- TST_NEEDS_CMDS="mount pvcreate vgcreate lvcreate"
- . tst_test.sh
- LVM_DIR="${LVM_DIR:-/tmp}"
- LVM_TMPDIR="$LVM_DIR/ltp/growfiles"
- LVM_IMGDIR="$LVM_DIR/ltp/imgfiles"
- error_check()
- {
- if [ $? -ne 0 ]; then
- tst_brk TBROK "LVM setup failed"
- fi
- }
- create_volume()
- {
- fsname=$2
- ROD mkdir -p $fsname
- # If the FS isn't supported, only create the mountpoint and exit
- if ! tst_supported_fs $fsname; then
- return
- fi
- vgname=$1
- lvname="ltp_lv_$fsname"
- lvdev="/dev/$vgname/$lvname"
- ROD lvcreate -L 1G $vgname -n "$lvname"
- tst_mkfs $fsname "$lvdev"
- ROD mount "$lvdev" $fsname
- }
- prepare_mounts()
- {
- FSNAME1=$1
- FSNAME2=$2
- shift 2
- LVM_DEV1=`tst_device acquire 1040 "$LVM_IMGDIR/lvm_pv1.img"`
- error_check
- LVM_DEV2=`tst_device acquire 1040 "$LVM_IMGDIR/lvm_pv2.img"`
- error_check
- # DEVSIZE=($# * 1GB / 2) + 16MB. The extra 16MB is for LVM physical
- # volume headers
- DEVSIZE=$(( $# * 512 + 16 ))
- LVM_DEV3=`tst_device acquire $DEVSIZE "$LVM_IMGDIR/lvm_pv3.img"`
- error_check
- LVM_DEV4=`tst_device acquire $DEVSIZE "$LVM_IMGDIR/lvm_pv4.img"`
- error_check
- ROD pvcreate $LVM_DEV1 $LVM_DEV2 $LVM_DEV3 $LVM_DEV4
- ROD vgcreate ltp_test_vg1 $LVM_DEV1 $LVM_DEV2
- ROD vgcreate ltp_test_vg2 $LVM_DEV3 $LVM_DEV4
- for fsname in $FSNAME1 $FSNAME2; do
- create_volume ltp_test_vg1 $fsname
- done
- for fsname in $@; do
- create_volume ltp_test_vg2 $fsname
- done
- }
- prepare_lvm()
- {
- FS_LIST=`tst_supported_fs | sort -u`
- ROD mkdir -p "$LVM_TMPDIR"
- ROD mkdir -p "$LVM_IMGDIR"
- chmod 777 "$LVM_TMPDIR"
- cd "$LVM_TMPDIR"
- error_check
- prepare_mounts $FS_LIST
- tst_res TPASS "LVM mounts are ready"
- }
- tst_run
|